Handhabung das checkedchanged Ereignis des inneren repeater Checkbox-Steuerelement in asp.net verschachtelten Repeater
Habe ich verschachtelten Repeater auf meiner aspx-Seite.In der äußeren repeater bin ich mit einer Liste von Produkten, und im inneren repeater bin ich mit einer Liste von zusätzlichen Optionen, die mit jedem Produkt.Die innere repeater enthält eine checkbox,textbox,label und andere Sachen.Ich möchte finden, dass die Steuerelemente innerhalb der äußeren repeater wählt ein Benutzer eine checkbox im inneren repeater.Um damit umzugehen ich bin mit dem folgenden code.
<asp:Repeater ID="OuterRepeater" runat="server"
onitemdatabound="OuterRepeater_ItemDataBound" >
<ItemTemplate>
<asp:Label ID="CodeLabel" runat="server" Text='<%# Eval("Code") %>'></asp:Label>
<asp:Repeater ID="InnerRepeater" runat="server" OnItemCreated="InnerRepeater_ItemCreated">
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" AutoPostBack="true"/>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
......
.......
</ItemTemplate>
</asp:Repeater>
......
......
</ItemTemplate>
</asp:Repeater>
protected void InnerRepeater_ItemCreated(object sender, RepeaterItemEventArgs e)
{
RepeaterItem ri = (RepeaterItem)e.Item;
if (ri.ItemType == ListItemType.Item || ri.ItemType == ListItemType.AlternatingItem
)
{
CheckBox cb = ri.FindControl("CheckBox1") as CheckBox;
cb.CheckedChanged += new EventHandler(CheckBox1_CheckedChanged);
}
}
private void CheckBox1_CheckedChanged(object sender, EventArgs e)
{
CheckBox cb = (CheckBox)sender;
if (cb.Checked)
{
//do something
}
else
{
//do something
}
}
Aber das checkedChanged-Ereignis der checkbox wird nicht feuern, aus irgendeinem Grund.Auch ich bin nicht sicher, wie Sie auf das textbox-von der äußeren repeater in der geprüft geändert-Ereignis des innter repeater checkbox-Steuerelement.
Könnte mir bitte jemand helfen mit diesem?
Dank
InformationsquelleAutor kranthi | 2011-08-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es nicht ausgelöst, das CheckedChanged-Ereignis, da Sie erklärt haben, den event-handler als
private
, Sie haben, um esProtected or Public
Können Sie Zugriff auf das Textbox-Steuerelement wie..
Ich update die Antwort, bitte versuchen Sie jetzt.
Ok,ich hatte einige js-Fehler, bevor ich denke, und so wurde das Ereignis nicht auslösen.Aber nun brennen noch mit dem "private" - modifier.Ich Frage mich nur, ist es zwingend erforderlich, zu ändern, um 'geschützt', wie es aufgerufen wird, nur innerhalb der gleichen Datei?
Auch habe ich versucht zu finden, die textbox in der äußeren repeater mit dem Beispielcode.Aber es funktioniert nicht.Es gibt null zurück.
Ok,ich bin in der Lage, Zugang zu den äußeren repeater-Steuerelemente, indem Sie ändern den code, den Sie zur Verfügung gestellt.Aber noch bin ich mir nicht sicher, ob die obligatorische änderung der Modifikator 'protected' in 'private'.
InformationsquelleAutor Muhammad Akhtar
Sieht es nicht aus, Sie definiert einen event-handler im markup.
InformationsquelleAutor James Johnson
Muhammad Akhtar ' s Antwort hat mir sehr geholfen heute!
Ich musste nur eine bestimmte ID, um meine dynamisch generierten Checkboxen in meinem reapeater zum wiederherstellen der Ursprung der Veranstaltung, und machen den rest der Verarbeitung, und es funktionierte perfekt.
Reovered nur als Beispiel.
Cant vote noch, aber danke.
InformationsquelleAutor