Avatar billede tdafoobar Nybegynder
15. juni 2006 - 20:09 Der er 8 kommentarer og
1 løsning

Sætte værdi af webcontrols.content

Hejsa

Jeg har et problem med at sætte værdien af en <asp:content> (webcontrols.content).

Jeg kan ikke rigtig finde en værdisætter metode i dokumentationen, så er der nogen som har en ide om hvordan den bruges ?

Det handler om at sætte værdi af en <asp:content> (som så reffere til en masterpage) fra en codebehind class.
Avatar billede snepnet Nybegynder
15. juni 2006 - 23:17 #1
Hvad mener du med en værdisætter, og hvad er det du gerne vil?
..... Hvis du gerne vil tilføje kontroller dynamisk, kan du sætte en placeholder ind, og lægge dem der - helt som du kan gøre det med en alm. form.
Mvh
Avatar billede tdafoobar Nybegynder
17. juni 2006 - 01:28 #2
Det er lidt svært at forklare , men jeg vil forsøge.

Jeg vil gerne have at det overordnede HTML layout hånteres af en masterpage.
På undersiderne skal der så indsættes værdi, på de fleste ud fra et Namespace.Page codebehind class. Problemet er at jeg helst ikke vil have unødvendige html elementer i placeholderne , dette med henblik på CSS.

Jeg har derfor brug for at kunne sætte værdien af nogle placeholdere, som ikke generere html elementer.

MasterPage.master
+subpage.aspx <-> Codebehind
= output

Jeg vil på nogle undersider nemlig gerne skifte min codebehind ud, hvis det ikke er regulære tekst sider. Men resultatet skal stadig indsættes igennem min masterpage. At bruge <div id="foobar" runat="server"> virker fint, men jeg vil jo helst undgå den ekstra <div> :(
Avatar billede tdafoobar Nybegynder
17. juni 2006 - 02:37 #3
løsningen kunne også være hvis der findes et placeholder element , som virker på alm. aspx sider, og ikke kun master pages.
Avatar billede snepnet Nybegynder
17. juni 2006 - 10:51 #4
Du har en kontrol der hedder en placeholder og en literal control. Desuden et panel.
Men kan du ikke give et helt konkret eksempel på hvad det er for en kodelinie du ønsker at skrive - og om det er på din master eller contentpage du ønsker at kunne skrive det.
Mvh
Avatar billede tdafoobar Nybegynder
17. juni 2006 - 22:41 #5
Jo, først lidt kode.

forside.aspx
--------------
<%@ Page
    Language="C#"
    Debug="true"
    MasterPageFile="Secretnamespace.master"
    Inherits="Secretnamespace.PageView"
    src="PageView.cs"
%>
<asp:Content ID="titleContent" ContentPlaceHolderID="title" runat="Server">
Forside
</asp:Content>

<asp:Content ID="htmlContent" ContentPlaceHolderID="content" runat="Server">
<h1>Secretnamespace</h1>
<hr>
  <h2>Slogan</h2>
  <p>
    Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet
    dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit
    lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit
    esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim
    qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.Lorem ipsum dolor sit amet,
    consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
    Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo
    consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore
    eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit
    augue duis dolore te feugait nulla facilisi.Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy
    nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci
    tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit
    in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto
    odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.
  </p>
</hr>
</asp:Content>

---------------------

Page.cs
---------------------
using System;
using System.Data;
using System.Collections;
using MySql.Data.MySqlClient;

namespace Secretnamespace
{
  public class Page
  {
    private MySqlConnection link;
    private int pageID = 0;
    private string lang = "en";
    private string title;
    private string data;
    private object editDate;
    private bool isPage = false;

    public Page(int _pageID,string _lang)
    {
      string DSN = "DATABASE=secret;DATA SOURCE=localhost;USER ID=root;";
      link = new MySqlConnection(DSN);
      pageID = _pageID;
      lang  = _lang;
      loadPage();
    }

    private void loadPage()
    {
      // Select and bind the output rows
      string SQL = @"SELECT
                            sideID
                            ,lang
                            ,title
                            ,data
                            ,editDate
                    FROM
                            side
                    WHERE
                            sideID=?id
                    AND
                            lang=?lang
                    ";
      MySqlCommand cmd = new MySqlCommand(SQL);
      cmd.Connection = link;

      cmd.Connection.Open();
      cmd.CommandText = SQL;
      cmd.Prepare();

      cmd.Parameters.Add("?id",pageID);
      cmd.Parameters.Add("?lang",lang);

      DataSet ds = new DataSet();
      MySqlDataAdapter adapter = new MySqlDataAdapter();
      adapter.SelectCommand = cmd;
      adapter.Fill(ds);
      cmd.Connection.Close();

      if(ds.Tables[0].Rows.Count > 0)
      {
        DataRow dataR = ds.Tables[0].Rows[0];
        isPage = true;
        title = dataR["title"].ToString();
        data  = dataR["data"].ToString();
        editDate = dataR["editDate"];
      }
    }

    public string Title {
      get { return title; }
    }
    public string Data {
      get { return data; }
    }
    public object EditDate {
      get { return editDate; }
    }
    public bool IsPage {
      get { return isPage; }
    }
  }
}
Avatar billede tdafoobar Nybegynder
17. juni 2006 - 22:42 #6
Det jeg ønsker er så at sætte værdierne af titleContent og htmlContent i forside.aspx fra min Page.cs fil.
Avatar billede tdafoobar Nybegynder
17. juni 2006 - 22:43 #7
Namespaces er fjernet pga. de indirekte angiver navnet på den side jeg arbejder med nu, og denne side helst ikke skal kunne likes sammen med den endelige side I produktion, med henblik på kundernes sikkerhed. Derfor er der sikkert nogle tastefejl :p Koden virker fint :-)
Avatar billede tdafoobar Nybegynder
18. juni 2006 - 02:16 #8
løst ved at skrive sin egen controller, da alt andet var ulovligt/ikke muligt.

  using System;
  using System.Web;
  using System.Web.UI;

  public class PlainTextControl : System.Web.UI.UserControl
  {
    private string text = "";

    private void Page_Load(object sender, System.EventArgs e)
    {
    }

    public string Text
    {
      get { return text;  }
      set { text = value; }
    }

  }
Avatar billede snepnet Nybegynder
28. juni 2006 - 23:07 #9
Sorry ... har ikke været online i et stykke tid.
Mvh
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester