[英]Datalist_ItemCommand event not firing
我有一個包含item_Command事件的數據列表,該事件從未觸發。
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
DataList1.DataSource = mySource;
}
protected void DataList1_ItemCommand(object sender, DataListCommandEventArgs e)
{
//dostuff
}
<asp:DataList ID="DataList1" runat="server" OnItemCommand="DataList1_ItemCommand"
OnItemCreated="DataList1_ItemCreate">
<ItemTemplate>
<table>
<tr>
<td>
<asp:Button ID="ButtonEditTask" runat="server" Width="60px" Text="Edit" CommandName="edit" />
</td>
</tr>
</table>
</ItemTemplate>
</asp:DataList>
當我執行回發時,由於我沒有重新分配,所以我的數據源為null,因此事件處理程序不會觸發。 所以為了修復它為null,我嘗試覆蓋init
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
DataList1.DataSource = mySessionSource;
}
現在,我知道它不起作用的原因是:1.在我添加Override方法之前,我的數據源為null; 2.由於重新綁定每個回發,因此沒有及時創建我的Controls事件處理程序。
要修復1,我添加了一個數據源。 要修復2,我在init中添加了一個數據源。
但是,這似乎沒有解決任何問題,我也不知道為什么。 我還嘗試在init中添加一個event_handler,但它沒有執行任何操作。
確保將數據源綁定到DataList1
否則DataList始終為空,並且OnItemCreated
事件將永遠不會觸發。 您不需要OnInit
覆蓋。
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataList1.DataSource = mySource;
DataList1.DataBind();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.