【问题标题】:C# and ASP - Setting a command argument, then command argument disappearingC# 和 ASP - 设置命令参数,然后命令参数消失
【发布时间】:2011-07-05 18:31:14
【问题描述】:

我正在尝试使用 gridviewcommand 删除 gridview 中的条目(以及从 datacontext 中),但我想先询问用户是否确认。我有一个单独的链接按钮来使用用户单击删除按钮所在行中的项目的 ID 执行删除代码。

当用户单击删除时,我的代码隐藏将另一个链接按钮的 CommandArgument 属性设置为与其传递的命令参数基本相同。但是当用户去确认删除时,突然确认链接的命令参数是一个空字符串?是否在第一次回发后刷新属性?

这是我的代码:

ASPX

<asp:LinkButton ID="lbDelete" runat="server" Text="Delete" CommandName="delete" CommandArgument='<%# Eval("TheId") %>' /> //Delete LinkButton

<asp:LinkButton ID="confirmDelete" runat="server" OnClick="confirmDelete_Click" Text="Delete" /> //Confirmation Button

C#

rowCommandFunction(object sender, GridViewCommandEventArgs e)
{
     // blah blah blah
     ...
     confirmDelete.CommandArgument = e.CommandArgument.ToString();
     ...// I've put a breakpoint here, and it is setting the value properly...
}

confirmDelete_Click(object sender, EventArgs e)
{
    //...but when this line tries to run, comfirmDelete.CommandArgument is set to an empty string?
    int selectedId = int.Parse(confirmDelete.CommandArgument);
    ...
}

【问题讨论】:

    标签: c# asp.net


    【解决方案1】:

    是的,第二次回发导致问题..

    我认为您应该删除confirmDelete按钮,而改为从lbDelete调用一个javascript函数并从那里显示一个确认框。然后在命令事件中执行删除操作。

    请看下面的代码,

    Aspx 部分,

         <asp:LinkButton ID="lbDelete" runat="server" Text="Delete" CommandName="delete" CommandArgument='<%# Eval("TheId") %>' OnClientClick="return ConfirmDelete()"/>
    

    JavaScript 部分,

          function ConfirmDelete()
          {
             if(confirm("Are you sure to delete?"))
             {
                 return true;
              }
               else
              {
                return false;
              }
    
          }
    

    【讨论】:

    • @Jordan 我同意。如果您的意图只是显示确认消息,这是最好的解决方案。
    【解决方案2】:

    您必须在按钮中使用EnableViewState="True" 启用视图状态。

    默认情况下,按钮没有启用视图状态,所以你会得到命令参数在回发后消失,正如你所想的那样。

    编辑:

    为什么不给第二个按钮设置一个CommandName并在RowCommand函数中处理呢?

    【讨论】:

      猜你喜欢
      • 2014-09-22
      • 2023-03-07
      • 2012-11-26
      • 2015-07-08
      • 1970-01-01
      • 2016-03-25
      • 2014-03-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多