2

データリストがあり、DataKeyField を設定します

 <asp:DataList ID="lstItems" runat="server" RepeatDirection="Horizontal"  DataKeyField="itemid" >
  <ItemTemplate>
  //contents in the datalist here
  </ItemTemplate>
   </asp:DataList> 

ページに imgADD というイメージボタンもあります。私の質問は、サーバー側で imgADD をクリックして datakey の値を取得する方法です。

4

2 に答える 2

4
<asp:DataList ID="DataList_projects" runat="server" RepeatColumns="1" DataKeyNames="ID"
         RepeatDirection="Horizontal" onitemcommand="DataList_projects_ItemCommand" >

        <HeaderStyle ForeColor="Red" />
    <ItemTemplate>
        <hr style="color:" />
     <asp:Label ID="ltlproject" ForeColor="#cc0000"  runat="server" text="PROJECT:"></asp:Label>  &nbsp;<b><u><asp:Label ID="lblProject" runat="server" Text='<%# Eval("TITLE")%>' ></asp:Label></u></b> &nbsp;  <asp:LinkButton ID="lnkEdit" ForeColor="Red"  CommandName="Edit" runat="server">Edit</asp:LinkButton><br />


    </ItemTemplate>
    </asp:DataList>

コードビハインドで

protected void DataList_projects_ItemCommand(object source, DataListCommandEventArgs e)
    {

        if (e.CommandName == "Edit")
        {

           string strId = DataList_projects.DataKeys[e.Item.ItemIndex].ToString();

        }

    }

私はこれがあなたを助けると思う....

于 2012-11-02T12:39:09.780 に答える
0

ASPX コード:

//In the DataList ItemTemplate: 
.. 
.. 
<asp:ImageButton ID="imgADD" runat="server" ImageUrl="uri" ToolTip="Add" 
CommandName="Add" />

分離コード:

protected void DataList1_ItemCommand(object source, 
DataListCommandEventArgs e) 
{ 
  if(e.CommandName == "Add") 
  { 
    string keyID; 

    // Get the index of the row from which this event was raised. 
    int idx = e.Item.ItemIndex; 

    // Get the DataKey with the same index. 
    object thisKey = DataList1.DataKeys(idx); 
    if(thisKey != null) 
    { 
      keyID = thisKey.ToString(); 
      // do something here 
    } 
 } 

}

于 2012-11-02T12:43:42.540 に答える