| Forum: ASP.NET |
Thema:
Zugriff auf Custom Control |
Von:
G. Guest (
21.10.2003 16:06) |
Hallo,
ich habe eine normale Webforms-Seite, in welche ich eine DropDownList als Control einbinde. Im Code-Behind-File meiner Websorms-Seite möchte ich dann beim Klick auf den Button auf das selektierte Item meiner DropDownList zugreifen. Das funktioniert aber irgendwie nicht, da dort das Objekt nicht erkannt wird ("Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt")
Anbei der Code meiner Seiten. Vielleicht kann mir ja jemand helfen.
[b]test.aspx[/b]
[i]<%@ Page language="c#" Codebehind="test.aspx.cs" Inherits="Lizenzdialog.Test" %>
<%@ Register TagPrefix="tom" TagName="pnr_suche" Src="modules/pnr_suche.ascx" %>
<HTML>
<body>
<form id="Identify" method="post" runat="server">
<asp:Label id="Message" runat="server" />
<tom:pnr_suche runat="server" />
<asp:button id="btn_Show" onclick="Show" Runat="server" Text="Show"></asp:button>
</form>
</body>
</HTML>[/i]
[b]Die dazugehörige Code-Behind test.aspx.cs dazu:[/b]
[i]using System;
using System.Data;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Drawing;
namespace Lizenzdialog
{
public class Test : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Label Message;
protected System.Web.UI.WebControls.DropDownList pnr;
protected System.Web.UI.WebControls.Button btn_Show;
protected void Show(object sender, System.EventArgs e)
{
Message.Text = pnr.SelectedItem.Value.Trim();
}
}
}[/i]
[b]Nun das Custom Control pnr_suche.ascx:[/b]
[i]<%@ Control Language="c#" Codebehind="pnr_suche.ascx.cs" Inherits="Lizenzdialog.modules.pnr_suche"%>
<asp:DropDownList id="pnr" Runat="server"></asp:DropDownList>[/i]
[b]Und die dazugehörige Code-Behind pnr_suche.ascx.cs[/b]
[i]namespace Lizenzdialog.modules
{
using System;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
public class pnr_suche : System.Web.UI.UserControl
{
protected System.Web.UI.WebControls.DropDownList pnr;
private void Page_Load(object sender, System.EventArgs e)
{
if(!Page.IsPostBack)
{
LizenzData _LizenzData = new LizenzData();
// einige Funktionen, um der DropDownList einen Dummy-Eintrag voranzustellen
DataSet ds_pnr = _LizenzData.GetPNR();
DataTable dt_pnr = new DataTable();
dt_pnr = ds_pnr.Tables["PNR"].Clone();
DataRow neue_zeile= null;
neue_zeile = dt_pnr.NewRow();
neue_zeile["PNR"] = "";
dt_pnr.Rows.Add(neue_zeile);
foreach(DataRow row in ds_pnr.Tables["PNR"].Rows)
{
dt_pnr.ImportRow(row);
}
pnr.DataSource = dt_pnr;
pnr.DataTextField = "PNR";
pnr.DataValueField = "PNR";
pnr.DataBind();
}
}
}
}[/i]
Vielen Dank im Voraus
Tom
| Betreff |
Von |
Datum |
|
|
  |
Re: Zugriff auf Custom Control
| Hallo Tom,<br><br>wie Du schon richtig geschrieben hast " Das funktioniert aber irgendwie nicht, da dort das Objekt nicht erkannt wird " im Codebehind muss Du das Control natürlich als Objektvariable... |
 |
 |
 |
|
|
Tobi
Ulm
|
21.10.2003 16:30 |
|
|
  |
Re: Zugriff auf Custom Control
| Hallo Tobi,<br><br>erstmal danke für deine Hilfe. Ich weiß nicht, ob ich dich richtig verstanden habe, aber ich habe jetzt mal in der Code-Behind meiner aspx-Seite (test.aspx.cs) noch eine... |
 |
 |
 |
|
|
G.
Guest
|
21.10.2003 17:56 |
|
|
  |
Re: Zugriff auf Custom Control
| Hi Tom,<br><br>Du solltest das UserControl nicht vom Typ UserControl deklarieren sondern vom Typ der Klasse des UserControls. z.B.: public class myUserControl : UserCOntrol{<br>//...<br>}<br>im COde... |
 |
 |
 |
|
|
Tobi
Ulm
|
22.10.2003 09:05 |
|
|
  |
Re: Zugriff auf Custom Control
| Oh, jetzt hab ich gerade ein falschen Source eingegeben. Hier der richtige:<br>im COde behind:<br>proctected myUserControl pnrctrl = new myUserControl();<br> |
 |
 |
 |
|
|
Tobi
Ulm
|
22.10.2003 09:06 |
|
|
  |
Re: Zugriff auf Custom Control
| Hallo Tobi,<br><br>nochmals vielen Dank für Deine Hilfe.<br>Aber ich steh gerade etwas auf dem Schlauch und bekomm's einfach nicht hin. :(<br><br>Könntest Du mir vielleicht den Gefallen tun und meine Sourcen... |
 |
 |
 |
|
|
G.
Guest
|
22.10.2003 12:47 |
|
|
  |
Re: Zugriff auf Custom Control
| Yeppa,<br><br>mit Hilfe einer Kollegin ist das Problem gelöst.<br>Fall es jemanden interessiert, beschreibe ich mal meine Fehler und ide Lösung dazu<br><br>test.aspx:<br><br>Hier hat eine ID für meine Control... |
 |
 |
 |
|
|
G.
Guest
|
23.10.2003 11:29 |
|
|
  |
Re: Zugriff auf Custom Control
| Hallo beisammen,<br><br>nun habe ich ein neues Problem: Ich möchte mein CustomControl in ein DataGrid einbinden. Im ItemTemplate funktioniert das auch und ich bekomme mein DropDown mit Einträgen... |
 |
 |
 |
|
|
G.
Guest
|
24.10.2003 13:44 |
|
|
|
Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!