gridview模板列里有个linkbutton
如何实现点击linkbutton时先执行一段js代码,在执行一段更新数据的CS代码比如js方法如下:
<script>
function js(aa,bb)
{
}
</script>
CS方法如下:
public void updatedata(string cc,int dd)
{
}

解决方案 »

  1.   

    你想取什么样的数据?<asp:TemplateField HeaderText="操作">
           <ItemTemplate>
                <asp:LinkButton ID="EditButton" runat="server" Text="编辑" kong='<%#Eval("xxx")%>' OnClientClick="showwindow(this);return false;" > </asp:LinkButton>
           </ItemTemplate>
     </asp:TemplateField>
    //xxx是你要的字段 function  showwindow(thislink)
       {
          var aaa=thislink.kong;
          var sss=window.showModalDialog('dd.aspx?id=' + aaa + '&rand='+Math.random()+'',window,'dialogWidth:700px;DialogHeight=500px;status:no');
          if(sss!=undefined)
          {
             window.location.reload();
          }
       }
      

  2.   

    onClientClick="js(<%#Eval("aa")%>,<%#Eval("bb")%>)"
    或者在databound的时候。给linkbutton加个单击属性。。直接把参数给赋进去。
      

  3.   

    或者可以考虑这样:
    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
            GridViewRow row = e.Row;
            if (row.RowType == DataControlRowType.DataRow)
            {
                LinkButton lb = (LinkButton)row.FindControl("LinkButton1");
                lb.OnClientClick = "funny(" + e.Row.Cells[2].Text + ");return true;";
            }
            
    }
      

  4.   

    你想取什么样的数据? HTML code
    <asp:TemplateField HeaderText="操作">
           <ItemTemplate>
                <asp:LinkButton ID="EditButton" runat="server" Text="编辑" kong='<%#Eval("xxx")%>' OnClientClick="showwindow(this);return false;" > </asp:LinkButton>
           </ItemTemplate>
     </asp:TemplateField>
    //xxx是你要的字段 JScript code
     function  showwindow(thislink)
       {
          var aaa=thislink.kong;
          var sss=window.showModalDialog('dd.aspx?id=' + aaa + '&rand='+Math.random()+'',window,'dialogWidth:700px;DialogHeight=500px;status:no');
          if(sss!=undefined)
          {
             window.location.reload();
          }
       }
    C# code
    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
            GridViewRow row = e.Row;
            if (row.RowType == DataControlRowType.DataRow)
            {
                LinkButton lb = (LinkButton)row.FindControl("LinkButton1");
                lb.OnClientClick = "funny(" + e.Row.Cells[2].Text + ");return true;";
            }
            
    }三种方法都可以,不过第三种方法我使用时出现不稳定,有些服务器不起作用,脚本失效,后面都换成第一种方式了