从gridview中的onclick事件调用服务器端功能的方法?

时间:2011-03-26 14:23:32

标签: c# .net gridview javascript-events

在某些情况下,我不喜欢在gridview中显示“选择”链接按钮。我更喜欢使用onclick javascript事件来触发该函数,但我宁愿不使用查询字符串中的ClientID执行回发来执行该操作。被调用的函数(LoadProjects)只是用这个gridview隐藏当前面板,并在数据绑定第二个gridview后显示另一个面板。

protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
    ClientID = Int16.Parse(GridView1.SelectedValue.ToString());
    LoadProjects(ClientID);
}


protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        e.Row.Attributes.Add("onclick", "location='somepage.aspx?ClientID=" + e.Row.Cells[1].Text + "'");
        e.Row.Attributes.Add("style", "cursor:pointer;");
     }
    if (e.Row.RowType == DataControlRowType.Header)
    {
    }
    e.Row.Cells[1].Visible = false;
}

有没有办法在不使用查询字符串的情况下从onclick事件调用LoadProjects()函数?

2 个答案:

答案 0 :(得分:1)

尝试使用session来存储值,如果不想使用querystring。但休息仍然相同..

你不能在没有回发的情况下调用服务器端方法,甚至只在某个事件上发生。

避免回发的最佳选择是使用ajax。

答案 1 :(得分:1)

是的,您可以使用JS函数__doPostBack执行手动回发,有关详细信息和示例,请参阅this article