ListView代码如下:
<asp:ListView ID="ListView1"...>
    <LayoutTemplate>
        <table>              
            <tr id="itemPlaceholder" runat="server"></tr>
        </table>
    </LayoutTemplate>
    <ItemTemplate>
        <tr>
            <td><asp:Label ID="ItemNameLabel" runat="server" Text='<%# Eval("ItemName") %>' /></td>
            <td><asp:Label ID="ItemValueLabel" runat="server" Text='<%# Eval("ItemValue") %>' /></td>
            <td>
                <asp:LinkButton ID="EditButton" runat="server" CommandName="Edit" Text="Edit" />
                <asp:LinkButton ID="DeleteButton" runat="server" CommandName="Delete" Text="Delete" />
                <asp:LinkButton ID="TestButton" runat="server" Text="Test" Width="30px" OnClick="TestButton_Click" />
            </td>
        </tr>
    </ItemTemplate>
    ......
</asp:ListView>注意那个TestButton按钮,我想在这个按钮的Click事件中获取对应行的信息,即ItemName和ItemValue的值,该怎么写?

解决方案 »

  1.   

    protected void ListView1_OnItemCommand(object sender, ListViewCommandEventArgs e)
      {
      if (String.Equals(e.CommandName, ""))
      {
      ListViewDataItem dataItem = (ListViewDataItem)e.Item;
        
      }
      }

    protected void btn_Click(object sender, EventArgs e)
        {
            Button bt = (Button)sender;
            int index = ((ListViewDataItem)(bt.NamingContainer)).DataItemIndex;//获得行号
      }
      

  2.   


      ListViewDataItem dataItem = (ListViewDataItem)e.Item;
      DataRowView row = (DataRowView)dataItem.DataItem;
      Response.Write(row["ItemName"].ToString());不行啊,哪里错了?
      

  3.   


    sqldatasource, 可以显示数据,说明工作正常。
      

  4.   

    在你的TestButton的click事件下:
        protected void TestButton_Click(object sender, EventArgs e)
        {
            LinkButton lb = (LinkButton)sender;
            int index = ((ListViewDataItem)lb.NamingContainer).DataItemIndex; //行号
            string itemName = ((Label)ListView1.Items[index].FindControl("ItemNameLabel")).Text;
            string itemValue = ((Label)ListView1.Items[index].FindControl("ItemValueLabel")).Text;
        }