Benutzersteuerung in einer Rasteransicht
-
09-12-2019 - |
Frage
Ich habe ein Datebox-Benutzersteuerelement in der Rasteransicht und eine der Eigenschaften ist RowID.Von Gridview aus übergebe ich die Zeilen-ID an die Datumsbox als
<uc2:datePage1 ID="txtSubToSA" RowID=<%# Container.DataItemIndex %> runat="server" Enabled="true" Text= '<%#Eval("SUBMITTED_TO_SA") %>' />
Beim Laden der Seite des Benutzersteuerelements füge ich ein Attribut hinzu, um eine Javascript-Funktion wie diese aufzurufen:
protected void Page_Load(object sender, EventArgs e)
{
txtDate.Attributes.Add("onchange", "getRow(" + RowID + ")");
}
public int RowID
{
get;
set;
}
Wenn ich nun eine Änderung im Datumsfeld der Rasteransicht vornehme, wird unabhängig von der Zeile immer die Zeilen-ID 0 angezeigt und Änderungen, die ich in anderen Zeilen vorgenommen habe, werden nicht erkannt.Was mache ich hier falsch?
Lösung
Du fügst das hinzu onchange
Attribut in der Load
Event-Handler, vor dem RowId
wurde festgelegt – was während der Datenbindung geschieht.Sie könnten vielleicht überschreiben DataBind
und legen Sie das Attribut fest, nachdem die Datenbindung abgeschlossen ist:
public override void DataBind()
{
base.DataBind();
txtDate.Attributes.Add(...);
}
Andere Tipps
Sie können dies stattdessen ausprobieren - verschieben Sie den Code von generasacodicetagpre.
bis generasacodicetagpre.
Die Seite laden Komplettes Ereignis wird abgefeuert, nachdem die Daten geladen wurden.