C#(对象发送者,GridViewCommandEventArgs e)如何为第二部分覆盖一些东西?

时间:2016-03-18 09:29:24

标签: c# asp.net

我收到了以下代码:

protected void Name_RowCommand(object sender, GridViewCommandEventArgs e)

{
    if (e.CommandName == "TextINeed")
    {
        //Some Code
    }

    if (e.CommandName == "SomethingElse")
    {
       //Some Code
    }
}

protected void btn_someButton(object sender, EventArgs e)
{
    Name_RowCommand(sender, "TextINeed");
}

我遇到的问题是Name_RowCommand(sender, "TextINeed"); 我知道(sender,应该是正确的,但我如何使第2部分正确?我做了一些尝试,但到目前为止没有任何工作。

我对任何建议感到高兴!

1 个答案:

答案 0 :(得分:5)

由于GridViewCommandEventArgs,我认为这是ASP.NET。 您不能直接将参数传递给事件。事件被触发。在这种情况下,您必须注册此事件处理程序,例如在aspx:

<asp:gridview id="GridView1" 
  onrowcommand="Name_RowCommand"
  runat="server">

  <columns>
    <asp:buttonfield buttontype="Link" 
      commandname="TextINeed" 
      text="SomeText"/>
   .....
  </columns>

</asp:gridview>

如果用户现在点击了链接按钮,则CommandName将为TextINeed

如果要从另一个事件处理程序内部调用代码,您应该创建一个可以从两个事件处理程序调用的方法。

private void MyFirstMethod()
{
    //Some Code
}

protected void Name_RowCommand(object sender, GridViewCommandEventArgs e)
{
    if (e.CommandName == "TextINeed")
    {
        MyFirstMethod();
    }
}

protected void btn_someButton(object sender, EventArgs e)
{
    MyFirstMethod();
}