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 に答える