单击gridview中的行后回发

时间:2012-04-13 05:45:26

标签: c# asp.net gridview postback web-controls

我正在使用找到的代码here来使我的gridview具有可点击的行。代码是:

    protected void gvdownloadaccounts_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        e.Row.Cells[0].Visible = false; //hide the ID

        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            e.Row.Attributes["onmouseover"] = "this.style.cursor='pointer';this.style.textDecoration='underline';";
            e.Row.Attributes["onmouseout"] = "this.style.textDecoration='none';";
            e.Row.ToolTip = "Click to select row";
            e.Row.Attributes["onclick"] = this.Page.ClientScript.GetPostBackClientHyperlink(this.gvdownloadaccounts, "Select$" + e.Row.RowIndex);
        }
    }

...效果很好!...除了我需要制作它以便“onclick”在后面的代码中运行C#方法。该方法从数据库获取数据并使用该数据填充一些Web控件(如文本框等)。这似乎不应该那么难,所以如果有人能给我一个正确的方向,那就太棒了。

我只是想要重新定向到同一页面,但是使用查询字符串,这样我就能在page_load上捕获我的代码。但正如人们所期望的那样:

e.Row.Attributes["onclick"] = Response.Redirect("www.google.com");

......不起作用。

1 个答案:

答案 0 :(得分:2)

Mark Up

<asp:Button ID="btn" runat="server" style="display:none;" OnClick="Btn_Click" OnClientClick="UpdateControl();" /&gt;

//此按钮将被隐藏。执行单击并在代码后面调用该函数的处理程序将是有用的。现在在处理程序中编写代码来调用你的c#方法。

Java脚本

//执行隐藏按钮的单击。

<script language="javascript" type="text/javascript">
    function PerformClick() {
        document.getElementById('<%=btn.ClientID %>').click();
    }
</script>

如何在每个单独的行上调用C#方法?

e.Row.Attributes["onclick"] = "<script language='javascript' type='text/javascript'>function PerformClick() {document.getElementById('<%=btn.ClientID %>').click();</script>";