1

不知道我做错了什么。我的列表视图中有链接按钮,单击时会触发函数“ItemCommand”。“e.CommandArgument.ToString()” 假设等于我选择的项目,但有时它显示正确的项目,有时不是。为什么?

 <AlternatingItemTemplate>
    <tr class="UserAltTemplate" >
        <td>
           <%-- <asp:Label ID="UsernameLabel" runat="server" Text='<%# Eval("Login") %>'  style='<%# GetUserNameStyle() %>'/>--%>
            <asp:LinkButton ID="UsernameLabel" runat="server" Visible='<%# !string.IsNullOrWhiteSpace(Eval("Login").ToString()) %>'
            style='<%# GetUserNameStyle() %>' Text='<%# Eval("Login") %>' CommandArgument='<%#  Eval("Login") %>'></asp:LinkButton>
        </td>



protected void ItemCommand(object sender, ListViewCommandEventArgs e)
{

    string Target = e.CommandArgument.ToString();
4

1 回答 1

1

它取决于 CommandName 是否具有命令参数。您可以将标记更改为:

      <asp:LinkButton ID="UsernameLabel" runat="server" Visible='<%# !string.IsNullOrWhiteSpace(Eval("Login").ToString()) %>'
            style='<%# GetUserNameStyle() %>' Text='<%# Eval("Login") %>' 
CommandName="Login" CommandArgument='<%#  Eval("Login") %>'></asp:LinkButton>

在代码中:

protected void ItemCommand(object sender, ListViewCommandEventArgs e)
{
    if (String.Equals(e.CommandName, "Login"))
        {
            string Target = e.CommandArgument.ToString();

您可以查看MSDN了解详细信息。

于 2013-08-26T23:45:16.617 回答