使用 asp.net、c# 3.5 与 2008。
我有一个名为 gv1 的 aspx gridview,它具有一个工作的 c# 代码隐藏 onrowcommand 方法,当单击该行上的按钮时会调用该方法。
gridview上的按钮是动态生成的。
我正在尝试用 JavaScript 函数替换该代码隐藏调用,以避免与服务器的往返。
我该怎么做?
到目前为止我已经尝试过
当我在 foreach 循环中动态生成按钮时,在后面的代码中添加行属性,但这不起作用:
r.Attributes.Add("OnRowCommand", "javascript:gv1RowCommand(ID);");
以下内容在运行前给出错误:没有重载方法需要 1 arg
<asp:GridView ID="gv1" runat="server" onrowcommand="gv1RowCommand(ID)" ...
各种其他事物,例如事件
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/