天天看點

怎樣獲得Datalist的項模版裡面被單擊某控件名的值

我用C# asp.net2.0  我用datalist控件來顯示不同商家的資訊,當我單擊某個商家imagebutton,想得到它的商家名,然後在另外一頁顯示更俱體的資訊.   好多網友給我回複都不大行:

<asp:DataList ID="DataList1" runat="server" OnItemCommand="DataList1_ItemCommand">     <ItemTemplate>         <asp:Label ID="Label1" runat="server" Text='<%# Eval("yourField") %>'></asp:Label>         <asp:ImageButton ID="ImageButton1" runat="server" CommandName="XXX"/>     </ItemTemplate> </asp:DataList> protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e) {     if (e.CommandName == "XXX")     {         Response.Write((e.Item.FindControl("Label1") as Label).Text);     } }

想得到它的商家名,然後在另外一頁顯示更俱體的資訊. --------------------------------------- 商家肯定有唯一ID吧,如果你想面通過商家ID來顯示具體資訊,那麼還有個辦法就是: <asp:DataList ID="DataList1" runat="server" DataKeyField="商家ID"             DataSourceID="SqlDataSource1" onitemcommand="DataList1_ItemCommand"> 背景代碼中DataList1.SelectedValue傳回的就是商家ID,你可以通這個再進行進一步操作。

加上CommandArgument=' <%# Eval("商家ID") %>' 然後在ItemCommand裡Convert.ToInt32(e.CommmandArgument)來取得商家ID。

最後本人用下面這方法,成功:

<asp:ImageButton ID="Imgbt1" runat="server"                                 Height="70px" ImageUrl=' <%# DataBinder.Eval(Container.DataItem,"shoppiture","Images/{0}") %>'                                 Width="82px" CommandArgument=' <%# DataBinder.Eval(Container.DataItem,"shopname") %>' PostBackUrl=' <%# "~/Shopmanage/ShopShow.aspx?shopname="+DataBinder.Eval(Container.DataItem,"shopname") %>' /> </td>                         <td style="width: 85px; height: 24px">

繼續閱讀