使用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的更多信息,可以发送邮件或回复。如果以上代码段对您来说还不够,那么您可以发布更多的代码清单,并相应地发布正确的代码。

10-06 12:41
查看更多