0

我有带有 LinkBut​​ton 和标签的 Datalist。当我单击该数据记录时,我需要获取该记录的主键值。如何做到这一点?

<asp:DataList ID="DataList1" runat="server" DataSourceID="SqlDataSource1" OnSelectedIndexChanged="DataList1_SelectedIndexChanged" RepeatColumns="1" ShowFooter="False" ShowHeader="False" Width="587px" style="margin-right: 25px; margin-bottom: 116px">
    <ItemTemplate>
        &nbsp;<table style="width:100%;">
            <tr>
                <td>
                    <asp:LinkButton ID="LinkButton1" runat="server" Font-Bold="True" Font-Names="Tahoma" Font-Size="Medium" Font-Strikeout="False" ForeColor="Black" OnClick="LinkButton1_Click" Text='<%# Eval("title") %>'></asp:LinkButton>
                </td>
                <td>
                &nbsp;</td>
            </tr>
            <tr>
                <td>
                    <asp:Label ID="contentLabel" runat="server" Font-Names="Tahoma" Text='<%# Eval("content") %>' />
                </td>
                <td>

                    <br />

                </td>
            </tr>
        </table>
    </ItemTemplate>
</asp:DataList>
4

2 回答 2

0

您需要在查询中返回主键。然后将主键分配给列。然后,您可以从后面的代码等中访问此列及其值

例如:

                            <td>
                                <asp:Label ID="id" runat="server" Font-Names="Tahoma" Text='<%# Eval("id") %>' />
                            </td>
于 2014-03-06T16:11:58.143 回答
0

您应该在 DataList 的定义中包含 DataKeyNames。

<asp:DataList ID="DataList1" runat="server" DataKeyNames="ID" ... />

然后在代码隐藏中,您可以检索它:

protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
{

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

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

    }

}
于 2014-03-06T16:36:07.487 回答