如何判断用户点击了GridView中的哪个单元格?
我的Web应用程序需要根据用户点击GridView中不同的单元格做出不同的响应,如弹出不同的页面。
我该如何判断用户到底点击了哪个单元格?请高手指教,多谢!
------解决方案--------------------數據綁定的時候,可以針對不同的行和列,生成不同的內容和js
------解决方案--------------------就楼上这样做
------解决方案--------------------在服务器端控制还是客户端??
在客户端可以通过event对象来处理.
------解决方案--------------------在rowdatabound事件里,遍历所有单元格,添加onclick事件
例如:
.cs文件
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
for (int i = 0; i < e.Row.Cells.Count; i++)
{
e.Row.Cells[i].Attributes.Add("onclick", "openWin("+参数+")");
}
}
}
.aspx的js:
function openWin(o)
{
window.open("xxxx?para="+o);
}
------解决方案--------------------如4楼兄弟所说。
------解决方案--------------------
protected void gvList_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
for (int i = 0; i < e.Row.Cells.Count; i++)
{
e.Row.Cells[i].Attributes.Add("onclick", "脚本方法名称");
}
}
}
------解决方案--------------------楼上们说的是不错~但是太复杂了~我给你个应该是
gridview.rows[x].cell[y],记着要用中括号啊。取出以后如果里面是控件的话你就用一下强制类型转换
例如:取出第二行第3列里的Dropdownlist的值
((Dropdownlist)(gridview.rows[1].cell[2].Control(0)).SelectIndex.Text
肯定简单而且能取出数据~
------解决方案--------------------顶下...
------解决方案-------------------- foreach (GridViewRow row in GridView1.Rows) {
if (row.RowType == DataControlRowType.DataRow) {
//单击事件,为了响应双击事件,延迟 1 s,根据需要可能需要增加延迟
row.Attributes["onclick"] = String.Format("alert(\""+GridView1.DataKeys[row.RowIndex].Value.ToString()+"\"));
row.Attributes["style"] = "cursor:pointer";
row.Attributes["title"] = "单击打开详细页面、双击进入编辑";
}
}
protected void gvList_RowDataBound(object sender, GridViewRowEventArgs e)
写在这个方法中