使用ajax无刷新gridview后,怎么获得选中行的值啊?
不使用ajax,gridview选中行后在GridView1_SelectedIndexChanged事件中可以获得值,但是使用了ajax后就不能获得了......
不使用ajax,gridview选中行后在GridView1_SelectedIndexChanged事件中可以获得值,但是使用了ajax后就不能获得了...
展开
1个回答
展开全部
使用ajax,获取选中行的值只能在客户端使用JS处理,具体处理办法要针对具体的场景使用。
说下思路和实现吧:1、在gridview的RowDataBound事件中,为每一行绑定JS方法,参考代码:
protected void girdview1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes.Add("onclick", "selectRow(this)");//绑定JS方法selectRow(),需要在客户端写JS处理函数
}
}
2、客户端写JS代码
var selrow=null;
function selectRow(row) {
//********设置背景色,可忽略**********
if (selrow != null) {
selrow.style.backgroundColor = '#FFF'
}
row.style.backgroundColor = '#000';
// *******************************************
selrow = row;//这里进行赋值,关键
}
3、获取值。这大致分两种情况
a、如果每次发生AJAX请求的时候,都要返回该行的值,则在客户端JS中使用 全局变量selrow来获取该行的值,方法应该会吧(提示:用selrow.cells的下标),然后使用异步ajax方法返回这些值到服务器,再获取处理;
b、如果是每次刷新整个页面时才返回当前行的值,则相对容易一些,直接使用服务器控件HiddenField保存客户端选中行的值,后台代码在处理事件或函数中就可以直接调用HiddenField中的值了。
哎,这个问题给0分有些不厚道啊,既然看到了,全当助人为乐了,呵呵,如有问题可直接联系我QQ(即我的网名),不过请注明来意
说下思路和实现吧:1、在gridview的RowDataBound事件中,为每一行绑定JS方法,参考代码:
protected void girdview1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes.Add("onclick", "selectRow(this)");//绑定JS方法selectRow(),需要在客户端写JS处理函数
}
}
2、客户端写JS代码
var selrow=null;
function selectRow(row) {
//********设置背景色,可忽略**********
if (selrow != null) {
selrow.style.backgroundColor = '#FFF'
}
row.style.backgroundColor = '#000';
// *******************************************
selrow = row;//这里进行赋值,关键
}
3、获取值。这大致分两种情况
a、如果每次发生AJAX请求的时候,都要返回该行的值,则在客户端JS中使用 全局变量selrow来获取该行的值,方法应该会吧(提示:用selrow.cells的下标),然后使用异步ajax方法返回这些值到服务器,再获取处理;
b、如果是每次刷新整个页面时才返回当前行的值,则相对容易一些,直接使用服务器控件HiddenField保存客户端选中行的值,后台代码在处理事件或函数中就可以直接调用HiddenField中的值了。
哎,这个问题给0分有些不厚道啊,既然看到了,全当助人为乐了,呵呵,如有问题可直接联系我QQ(即我的网名),不过请注明来意
参考资料: 自己从前的代码^_^
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询