使用asp.net,C#3.5和2008。
我有一个名为gv1的aspx网格视图,在onrowcommand方法后面有一个有效的c#代码,单击该行上的按钮时会调用该方法。
gridview上的按钮是动态生成的。
我试图用javascript函数替换该codebehind调用,以避免往返服务器。
我该怎么做呢?
到目前为止,我已经尝试过
当我在foreach循环中动态生成按钮时,在后面的代码中添加了row属性,但没有用:
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的更多信息,可以发送邮件或回复。如果以上代码段对您来说还不够,那么您可以发布更多的代码清单,并相应地发布正确的代码。