在某些情况下,我不喜欢在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()函数?
答案 0 :(得分:1)
尝试使用session来存储值,如果不想使用querystring。但休息仍然相同..
你不能在没有回发的情况下调用服务器端方法,甚至只在某个事件上发生。
避免回发的最佳选择是使用ajax。
答案 1 :(得分:1)
是的,您可以使用JS函数__doPostBack
执行手动回发,有关详细信息和示例,请参阅this article。