2
我有一個datalist控件,裏面有一些控件(例如:button)。我想寫一些代碼到datalist控件中的按鈕的click事件中。但是在頁面後面的代碼中,我無法將控件的名稱查看到datalist中。我怎麼解決這個問題?在datalist下使用事件控制
我有一個datalist控件,裏面有一些控件(例如:button)。我想寫一些代碼到datalist控件中的按鈕的click事件中。但是在頁面後面的代碼中,我無法將控件的名稱查看到datalist中。我怎麼解決這個問題?在datalist下使用事件控制
如果你不希望將處理程序添加到所有的子活動,你可以代替你的代碼添加到OnItemCommand。
<asp:DataList id="DataList1" runat="server">
<ItemTemplate>
<asp:Button ID="btnDoSomething" Runat=server CommandName="DoSomething"
CommandArgument="<%# DataBinder.Eval(Container.DataItem, "SomeID")
%>"></asp:LinkButton>
</ItemTemplate>
</asp:DataList>
protected void DataList1_ItemCommand(
object source, DataListCommandEventArgs e)
{
if (e.CommandName == "DoSomething")
{
//Do stuff
}
}
將您的事件附加到數據列表的OnItemCreated事件中的控件。
編輯補充樣本
private void DataList_ItemCreated(object sender,
System.Web.UI.WebControls.DataListItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Button btn = (Button)e.Item.FindControl("btnWhatever");
if (btn != null) btn.Click += new EventHandler(SomHandler);
}
}
你可以簡化一下嗎?一些示例代碼可以幫助。 – mavera 2009-01-09 14:51:40
當然,事情。查看編輯並讓我知道如果清楚。 – cmsjr 2009-01-09 14:54:04