리피터를 UpdatePanel 내부에서 사용하고 데이터베이스에서 엔터티를 삭제하고 리피터에 대한 새 데이터를 가져오고 패널을 업데이트하는 버튼이 있습니다. LinkButton을 시도했지만 항상 포스트 백을 수행하고 페이지가 다시 연결됩니다. 그런 다음 일반 버튼을 시도하고 DataBound 이벤트에서 해당 버튼에 대한 이벤트를 만듭니다. 그러나 그것은 작동하지 않습니다. 여기 코드는 다음과 같습니다Asp.Net 버튼 UpdatePanel 내부의 리피터 내부 이벤트 이벤트
영문 파일 :
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<asp:UpdatePanel runat="server" id="Panel">
<ContentTemplate>
<table cellpadding="0" cellspacing="0" id="saveTable">
<tr style="font-weight: bold;">
<td>Erstellt am</td>
<td>Anforderer</td>
<td>Werk</td>
<td>Gebäude</td>
<td>Start Datum</td>
<td>Löschen</td>
<td>Benutzen</td>
</tr>
<asp:Repeater ID="Repeater1" runat="server" onitemdatabound="Repeater1_ItemDataBound">
<ItemTemplate>
<tr id="Meldung<%# DataBinder.Eval(Container.DataItem,"meldungId")%>">
<td><%# DataBinder.Eval(Container.DataItem, "timestamp").ToString().Substring(0, 10)%></td>
<td><%# DataBinder.Eval(Container.DataItem,"nameAnforderer") %></td>
<td><%# DataBinder.Eval(Container.DataItem,"Werk") %></td>
<td><%# DataBinder.Eval(Container.DataItem,"Building") %></td>
<td><%# DataBinder.Eval(Container.DataItem,"startDatum").ToString().Substring(0, 10) %></td>
<td>
<asp:Button runat="server" ID="test"/>
</td>
<td></td>
</tr>
</ItemTemplate>
</asp:Repeater>
</table>
</ContentTemplate>
</asp:UpdatePanel>
및 코드에서 내가 ID로 버튼을 제공 뒤에
= 작업은 텍스트를 전달하고 무슨 있도록 이벤트protected void deleteMeldung(object sender, EventArgs e) {
System.Threading.Thread.Sleep(5000);
}
protected void Repeater1_ItemDataBound(object source, RepeaterItemEventArgs e) {
RepeaterItem repeaterSource = e.Item;
Button btn1 = repeaterSource.FindControl("test") as Button;
DataRowView drv = e.Item.DataItem as DataRowView;
string meldungId = drv.Row["meldungId"].ToString();
btn1.ID = "myNewButton"+meldungId;
btn1.Click += new EventHandler(deleteMeldung);
btn1.Text = "delete";
}
을 테스트하고 ID와 같은 각 버튼에. 하지만 Button에는 클릭 이벤트가 없습니다. deleteMeldung()
에 새로운 데이터를 업데이트 : 이렇게하면 페이지를 새로 고침하지 않을 것입니다.이 링크 버튼을 사용할 수 있습니다 .. –