[英]Datalist Itemcommand event is not working
我正在嘗試處理datalist的itemcommand事件。 我想使用綁定在數據列表中的按鈕。 但是當我在itemcommand事件上添加斷點時,該事件無法運行。請告訴我為什么它在這里不起作用是數據列表源和我的代碼
<asp:DataList ID="DataList1" runat="server" RepeatDirection="Horizontal"
onitemcommand="DataList1_ItemCommand1" >
<ItemTemplate>
<ul>
<li>
<a href="#"><asp:Image ID="Image1" runat="server" ImageUrl='<%#Eval("pictureurl") %>' Width="170px" Height="104px" /></a><br /><br />
<asp:Label ID="Label1" runat="server" Text='<%#Eval("fullname") %>'></asp:Label><br />
<asp:ImageButton ID="ImageButton2" runat="server" ImageUrl="~/images/Icons/accept1.png" CommandName="Accept" /> <asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="~/images/Icons/decline.png" />
</li>
</ul>
</ItemTemplate>
</asp:DataList>
碼:
if (e.CommandName == "Accept")
{
string id = DataList1.DataKeys[e.Item.ItemIndex].ToString() ;
SqlCommand CmdAcceptRequest = new SqlCommand("Update FriendRequest set requeststatus='Accept' where RequestFrom='" + id + "'", con);
CmdAcceptRequest.CommandType = CommandType.Text;
CmdAcceptRequest.ExecuteNonQuery();
CmdAcceptRequest.Dispose();
}
此代碼對我不起作用。 項目命令事件不起作用請專家告訴我我錯了
我假設您在每次回發中都對DataList
進行數據綁定。 檢查IsPostNack
屬性,例如:
protected void Page_Load(Object sender, EventArgs e)
{
if(!IsPostBack)
{
DataBindDataList();
}
}
private void DataBindDataList()
{
var dataSource = getSource(); // some data
DataList1.DataSource = dataSource;
DataList1.DataBind();
}
否則,如果再次將Webdatabound控件DataBind
到其DataSource
,則事件將不會觸發。 這僅適用於手動數據綁定控件,而不適用於聲明性數據源控件(如SqlDataSource
或ObjectDataSource
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.