c# - 如何在 onrowcommand 上调用 javascript 函数?

标签 c# asp.net javascript gridview rowcommand

使用 asp.net、c# 3.5 与 2008。

我有一个名为 gv1 的 aspx gridview,它具有一个工作的 c# 代码隐藏 onrowcommand 方法,当单击该行上的按钮时会调用该方法。

gridview上的按钮是动态生成的。

我正在尝试用 JavaScript 函数替换该代码隐藏调用,以避免与服务器的往返。

我该怎么做?

到目前为止我已经尝试过

  1. 当我在 foreach 循环中动态生成按钮时,在后面的代码中添加行属性,但这不起作用:

    r.Attributes.Add("OnRowCommand", "javascript:gv1RowCommand(ID);");

  2. 以下内容在运行前给出错误:没有重载方法需要 1 arg

    <asp:GridView ID="gv1" runat="server" onrowcommand="gv1RowCommand(ID)" ...
    
  3. 各种其他事物,例如事件 onchange 、 onselected

我使用以下 JavaScript 只是为了看看是否可以调用它:

function gv1RowCommand(ID) { 
alert(
"row command"); 
}

最佳答案

您需要先创建按钮对象,然后为其添加属性。 检查下面的代码 -

foreach (GridViewRow row in gv1.Rows)
 {
    //Creates object of button inside your gridView Row
    Button btnRowCommand = (Button)row.FindControl("YourButtonName");
    //Adds Attribute to button- in this case adds onclick attribute 
    //which will fire the 
    //gv1RowCommand(ID); javascript function
    btnRowCommand.Attributes.Add("onclick", "gv1RowCommand('"+ ID +"');"); 
 }

而不是

// dont use this code  
 r.Attributes.Add("OnRowCommand", "javascript:gv1RowCommand(ID);");  
// dont use this code

当用户单击 gridview 内的按钮时,这将导致您的 javascript 函数 gv1RowCommand(ID) 触发。如果您需要更多有关在 gridView 中使用 javascript 的信息,您可以发邮件或回复。如果上面的代码片段对您来说还不够,您可以发布更多代码 list ,并相应地发布正确的代码。

关于c# - 如何在 onrowcommand 上调用 javascript 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1478193/

相关文章:

c# - 在 OOP 中表达类型组合

c# - 绑定(bind)到内部 ViewModel-Property

C# 使用 GetFiles 返回完整路径

ASP.NET 和不完整的 HTTP 请求

javascript - CSS 动画只能工作一次

javascript - 如何使用 jest 测试 javascript 中的抽象函数?

c# - 在互操作方法中为 `null` 参数传递 `ref struct` 引用

javascript - 使用 JQuery 或 JavaScript 访问 Gridview 内的 Eval 值

ASP.NET MVC 5 Web.config : "FormsAuthenticationModule" or "FormsAuthentication"

javascript - 使用 Tree 布局 v4(版本 4)将节点动态添加到 D3.js 中的叶节点