20 个解决方案
#1
http://www.360doc.com/content/08/0916/10/63890_1647674.shtml
#2
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
这个时候你选中了这行
}
}
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
这个时候你选中了这行
}
}
#3
GV属性里面的GridView_RowDataBound,点击进去设置就可以了。
#4
以上两楼都正确啦~
#5
其实这是很基础的东东啦
楼主好好看看书就只知道啦
楼主好好看看书就只知道啦
#6
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes.Add("onMouseOver", "t=this.style.backgroundColor;this.style.backgroundColor='#ebebce'");
e.Row.Attributes.Add("onMouseOut", "this.style.backgroundColor=t");
e.Row.Attributes.Add("onclick", "if(this.style.backgroundColor=='#ebebce')this.style.backgroundColor=t;else{this.style.backgroundColor='#ebebce'}");
e.Row.Attributes.CssStyle.Add("cursor", "hand");
}
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes.Add("onMouseOver", "t=this.style.backgroundColor;this.style.backgroundColor='#ebebce'");
e.Row.Attributes.Add("onMouseOut", "this.style.backgroundColor=t");
e.Row.Attributes.Add("onclick", "if(this.style.backgroundColor=='#ebebce')this.style.backgroundColor=t;else{this.style.backgroundColor='#ebebce'}");
e.Row.Attributes.CssStyle.Add("cursor", "hand");
}
#7
这个貌似只是设置客户端 js。 而不能调用后台方法
我需要点击行的任何位置时调用。服务器端方法。
#8
点击获取行号
<asp:GridView ID="GridView5" runat="server" AutoGenerateColumns="False" onrowdatabound="GridView5_RowDataBound" >
<Columns>
<asp:TemplateField>
<ItemTemplate>
<%#DataBinder.Eval(Container,"DataItem.ID") %>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:TextBox ID="TextBox5" runat="server"></asp:TextBox>
protected void GridView5_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes.Add("style", "cursor:pointer");
e.Row.Attributes.Add("onclick", "document.getElementById('TextBox5').value=" + e.Row.RowIndex + "");
}
}
#9
我只想知道 GridView在点击行的任何位置时调用服务器端方法。而不是客户端的。
#10
gv.Rows[i].Attributes.Add("ondblclick", "javascript:tb_show('编辑', 'Detail.aspx?sm=" + id + "iframe=true&height=325&width=520', false);");
#11
这种东西非常简单,问题是许多入门书都缺乏asp.net基本概念。代码就是类似这样的
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page, IPostBackEventHandler
{
void IPostBackEventHandler.RaisePostBackEvent(string eventArgument)
{
if (eventArgument.StartsWith("点击GridView1:"))
处理点击GridView1(int.Parse(eventArgument.Substring(13)));
}
private void 处理点击GridView1(int rowIndex)
{
//在这里写上你的处理代码
}
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
e.Row.Attributes["onclick"] = this.Page.ClientScript.GetPostBackEventReference(this, "点击GridView1:" + e.Row.RowIndex.ToString());
}
}
唯一要知道的知识就是:如何使用 IPostBackEventHandler 接口。
#12
回发,这非常重要。如果不回发,那么界面上所有状态都丢失了,还处理什么呢?
#13
嗯,上面大概应该写 eventArgument.Substring(12) 而不是 eventArgument.Substring(13) 吧!
#14
正解,RowDataBound事件里。
#15
+1
#16
编辑一个模版,然后在itemtemplate里边写,比如我这放个linkbutton,参数用到什么就传过去
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButton_Click"> </asp:LinkButton>
</ItemTemplate>
然后在后台写onclick事件
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButton_Click"> </asp:LinkButton>
</ItemTemplate>
然后在后台写onclick事件
#17
不知道CSDN上的人都干嘛吃的 连问题都看不懂就来说话
行点击 懂否? 不是一个按钮或者文字 还有 调用的是后台方法
前台
后台
行点击 懂否? 不是一个按钮或者文字 还有 调用的是后台方法
前台
<%@ Page Language="C#" Theme="KJJTheme" AutoEventWireup="true" CodeFile="gv_click.aspx.cs" Inherits="gv_click" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>GridView单击与双击事件</title>
<script language="javascript" type="text/javascript" >
var dbl_click = false;
</script>
</head>
<body style="font-size:12px;">
<form id="form1" runat="server">
<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="false" Width="100%" RowStyle-HorizontalAlign="Center" OnRowCreated="GridView1_RowCreated" style="margin-top:10px;" DataKeyNames="id">
<SelectedRowStyle BackColor="CadetBlue" />
<Columns>
<asp:BoundField DataField="id" HeaderText="序号" />
<asp:BoundField DataField="测点名称" HeaderText="测点名称" />
<asp:BoundField DataField="监测时间" HeaderText="监测时间" />
<asp:BoundField DataField="minValue" HeaderText="最小值" />
<asp:TemplateField >
<HeaderTemplate>
值1
</HeaderTemplate>
<ItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Width="30" Text='<%#Eval("x1")%>'/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField >
<HeaderTemplate>
值2
</HeaderTemplate>
<ItemTemplate>
<asp:TextBox ID="TextBox2" runat="server" Width="30" Text='<%#Eval("x2")%>'/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField >
<HeaderTemplate>
值3
</HeaderTemplate>
<ItemTemplate>
<asp:TextBox ID="TextBox3" runat="server" Width="30" Text='<%#Eval("x3")%>'/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField >
<HeaderTemplate>
值4
</HeaderTemplate>
<ItemTemplate>
<asp:TextBox ID="TextBox4" runat="server" Width="30" Text='<%#Eval("x4")%>'/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField >
<HeaderTemplate>
值5
</HeaderTemplate>
<ItemTemplate>
<asp:TextBox ID="TextBox5" runat="server" Width="30" Text='<%#Eval("x5")%>'/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField >
<HeaderTemplate>
值6
</HeaderTemplate>
<ItemTemplate>
<asp:TextBox ID="TextBox6" runat="server" Width="30" Text='<%#Eval("x6")%>'/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField >
<HeaderTemplate>
值7
</HeaderTemplate>
<ItemTemplate>
<asp:TextBox ID="TextBox7" runat="server" Width="30" Text='<%#Eval("x7")%>'/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField >
<HeaderTemplate>
值8
</HeaderTemplate>
<ItemTemplate>
<asp:TextBox ID="TextBox8" runat="server" Width="30" Text='<%#Eval("x8")%>'/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField >
<HeaderTemplate>
值9
</HeaderTemplate>
<ItemTemplate>
<asp:TextBox ID="TextBox9" runat="server" Width="30" Text='<%#Eval("x9")%>'/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField >
<HeaderTemplate>
值10
</HeaderTemplate>
<ItemTemplate>
<asp:TextBox ID="TextBox10" runat="server" Width="30" Text='<%#Eval("x10")%>'/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField Visible="false">
<HeaderTemplate>查看</HeaderTemplate>
<ItemTemplate>
<asp:LinkButton runat="server" ID="sc" OnCommand="command" Text="查看" CommandArgument='<%#Eval("id")%>' CommandName='<%#Eval("id")%>'></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</form>
</body>
</html>
后台
if (!Page.IsPostBack)
{
GridView2.DataSource = dosoft.DAL.DbHelperSQL.ExecuteDt("select top 5 * from test1");
GridView2.DataBind();
}
protected override void Render(HtmlTextWriter writer)
{
// GridView
foreach (GridViewRow row in GridView2.Rows)
{
if (row.RowType == DataControlRowType.DataRow)
{
int rowIndex = row.RowIndex;
string id = row.Cells[0].Text;
row.Attributes["onclick"] = String.Format("javascript:setTimeout(\"if(dbl_click){{dbl_click=false;}}else{{{0}}};\", 1000*0.3);",
"__doPostBack('GridView2$ctl0" + (rowIndex + 2).ToString() + "$sc','')");
//Response.Write(row.RowIndex.ToString());
// 双击,设置 dbl_click=true,以取消单击响应
row.Attributes["ondblclick"] = String.Format("javascript:dbl_click=true;window.open('DummyProductDetail.aspx?productid={0}');", id);
row.Attributes["ondblclick"] = String.Format("javascript:dbl_click=true;alert('您双击了ID={0}的这条数据');", id);
//
row.Attributes["style"] = "cursor:pointer";
//row.Attributes["title"] = "单击选择行,双击打开详细页面";
//"javascript:__doPostBack('GridView2$ctl02$sc','')"
//"javascript:__doPostBack('GridView2$ctl03$sc','')"
//"javascript:__doPostBack('GridView2$ctl04$sc','')"
//"javascript:__doPostBack('GridView2$ctl05$sc','')"
//"javascript:__doPostBack('GridView2$ctl06$sc','')"
//"javascript:setTimeout("if(dbl_click){dbl_click=false;}else{__doPostBack('GridView2','Select$2')};", 1000*0.3);"
}
}
base.Render(writer);
}
protected void command(object o, CommandEventArgs e)
{
string id = e.CommandArgument.ToString();
MessageBox.show(this, "您单击了ID=" + id + "的这条数据");
sel(id);
}
#18
我怎么感觉你就象瞧不起人呢?
这种东西非常简单,问题是许多入门书都缺乏asp.net基本概念。代码就是类似这样的
这话让你说的 我特不爱听 如果你真能把问题解决了 你是高手 关键 滥竽充数的
#19
我说句公道话,虽然他说话比较直接,但确实是可以的,我试过,我也遇到这样的问题,谢谢
#20
不好意思,引用错了。是这位朋友的可以的
#21
#1
http://www.360doc.com/content/08/0916/10/63890_1647674.shtml
#2
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
这个时候你选中了这行
}
}
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
这个时候你选中了这行
}
}
#3
GV属性里面的GridView_RowDataBound,点击进去设置就可以了。
#4
以上两楼都正确啦~
#5
其实这是很基础的东东啦
楼主好好看看书就只知道啦
楼主好好看看书就只知道啦
#6
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes.Add("onMouseOver", "t=this.style.backgroundColor;this.style.backgroundColor='#ebebce'");
e.Row.Attributes.Add("onMouseOut", "this.style.backgroundColor=t");
e.Row.Attributes.Add("onclick", "if(this.style.backgroundColor=='#ebebce')this.style.backgroundColor=t;else{this.style.backgroundColor='#ebebce'}");
e.Row.Attributes.CssStyle.Add("cursor", "hand");
}
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes.Add("onMouseOver", "t=this.style.backgroundColor;this.style.backgroundColor='#ebebce'");
e.Row.Attributes.Add("onMouseOut", "this.style.backgroundColor=t");
e.Row.Attributes.Add("onclick", "if(this.style.backgroundColor=='#ebebce')this.style.backgroundColor=t;else{this.style.backgroundColor='#ebebce'}");
e.Row.Attributes.CssStyle.Add("cursor", "hand");
}
#7
这个貌似只是设置客户端 js。 而不能调用后台方法
我需要点击行的任何位置时调用。服务器端方法。
#8
点击获取行号
<asp:GridView ID="GridView5" runat="server" AutoGenerateColumns="False" onrowdatabound="GridView5_RowDataBound" >
<Columns>
<asp:TemplateField>
<ItemTemplate>
<%#DataBinder.Eval(Container,"DataItem.ID") %>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:TextBox ID="TextBox5" runat="server"></asp:TextBox>
protected void GridView5_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes.Add("style", "cursor:pointer");
e.Row.Attributes.Add("onclick", "document.getElementById('TextBox5').value=" + e.Row.RowIndex + "");
}
}
#9
我只想知道 GridView在点击行的任何位置时调用服务器端方法。而不是客户端的。
#10
gv.Rows[i].Attributes.Add("ondblclick", "javascript:tb_show('编辑', 'Detail.aspx?sm=" + id + "iframe=true&height=325&width=520', false);");
#11
这种东西非常简单,问题是许多入门书都缺乏asp.net基本概念。代码就是类似这样的
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page, IPostBackEventHandler
{
void IPostBackEventHandler.RaisePostBackEvent(string eventArgument)
{
if (eventArgument.StartsWith("点击GridView1:"))
处理点击GridView1(int.Parse(eventArgument.Substring(13)));
}
private void 处理点击GridView1(int rowIndex)
{
//在这里写上你的处理代码
}
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
e.Row.Attributes["onclick"] = this.Page.ClientScript.GetPostBackEventReference(this, "点击GridView1:" + e.Row.RowIndex.ToString());
}
}
唯一要知道的知识就是:如何使用 IPostBackEventHandler 接口。
#12
回发,这非常重要。如果不回发,那么界面上所有状态都丢失了,还处理什么呢?
#13
嗯,上面大概应该写 eventArgument.Substring(12) 而不是 eventArgument.Substring(13) 吧!
#14
正解,RowDataBound事件里。
#15
+1
#16
编辑一个模版,然后在itemtemplate里边写,比如我这放个linkbutton,参数用到什么就传过去
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButton_Click"> </asp:LinkButton>
</ItemTemplate>
然后在后台写onclick事件
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButton_Click"> </asp:LinkButton>
</ItemTemplate>
然后在后台写onclick事件
#17
不知道CSDN上的人都干嘛吃的 连问题都看不懂就来说话
行点击 懂否? 不是一个按钮或者文字 还有 调用的是后台方法
前台
后台
行点击 懂否? 不是一个按钮或者文字 还有 调用的是后台方法
前台
<%@ Page Language="C#" Theme="KJJTheme" AutoEventWireup="true" CodeFile="gv_click.aspx.cs" Inherits="gv_click" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>GridView单击与双击事件</title>
<script language="javascript" type="text/javascript" >
var dbl_click = false;
</script>
</head>
<body style="font-size:12px;">
<form id="form1" runat="server">
<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="false" Width="100%" RowStyle-HorizontalAlign="Center" OnRowCreated="GridView1_RowCreated" style="margin-top:10px;" DataKeyNames="id">
<SelectedRowStyle BackColor="CadetBlue" />
<Columns>
<asp:BoundField DataField="id" HeaderText="序号" />
<asp:BoundField DataField="测点名称" HeaderText="测点名称" />
<asp:BoundField DataField="监测时间" HeaderText="监测时间" />
<asp:BoundField DataField="minValue" HeaderText="最小值" />
<asp:TemplateField >
<HeaderTemplate>
值1
</HeaderTemplate>
<ItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Width="30" Text='<%#Eval("x1")%>'/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField >
<HeaderTemplate>
值2
</HeaderTemplate>
<ItemTemplate>
<asp:TextBox ID="TextBox2" runat="server" Width="30" Text='<%#Eval("x2")%>'/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField >
<HeaderTemplate>
值3
</HeaderTemplate>
<ItemTemplate>
<asp:TextBox ID="TextBox3" runat="server" Width="30" Text='<%#Eval("x3")%>'/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField >
<HeaderTemplate>
值4
</HeaderTemplate>
<ItemTemplate>
<asp:TextBox ID="TextBox4" runat="server" Width="30" Text='<%#Eval("x4")%>'/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField >
<HeaderTemplate>
值5
</HeaderTemplate>
<ItemTemplate>
<asp:TextBox ID="TextBox5" runat="server" Width="30" Text='<%#Eval("x5")%>'/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField >
<HeaderTemplate>
值6
</HeaderTemplate>
<ItemTemplate>
<asp:TextBox ID="TextBox6" runat="server" Width="30" Text='<%#Eval("x6")%>'/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField >
<HeaderTemplate>
值7
</HeaderTemplate>
<ItemTemplate>
<asp:TextBox ID="TextBox7" runat="server" Width="30" Text='<%#Eval("x7")%>'/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField >
<HeaderTemplate>
值8
</HeaderTemplate>
<ItemTemplate>
<asp:TextBox ID="TextBox8" runat="server" Width="30" Text='<%#Eval("x8")%>'/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField >
<HeaderTemplate>
值9
</HeaderTemplate>
<ItemTemplate>
<asp:TextBox ID="TextBox9" runat="server" Width="30" Text='<%#Eval("x9")%>'/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField >
<HeaderTemplate>
值10
</HeaderTemplate>
<ItemTemplate>
<asp:TextBox ID="TextBox10" runat="server" Width="30" Text='<%#Eval("x10")%>'/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField Visible="false">
<HeaderTemplate>查看</HeaderTemplate>
<ItemTemplate>
<asp:LinkButton runat="server" ID="sc" OnCommand="command" Text="查看" CommandArgument='<%#Eval("id")%>' CommandName='<%#Eval("id")%>'></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</form>
</body>
</html>
后台
if (!Page.IsPostBack)
{
GridView2.DataSource = dosoft.DAL.DbHelperSQL.ExecuteDt("select top 5 * from test1");
GridView2.DataBind();
}
protected override void Render(HtmlTextWriter writer)
{
// GridView
foreach (GridViewRow row in GridView2.Rows)
{
if (row.RowType == DataControlRowType.DataRow)
{
int rowIndex = row.RowIndex;
string id = row.Cells[0].Text;
row.Attributes["onclick"] = String.Format("javascript:setTimeout(\"if(dbl_click){{dbl_click=false;}}else{{{0}}};\", 1000*0.3);",
"__doPostBack('GridView2$ctl0" + (rowIndex + 2).ToString() + "$sc','')");
//Response.Write(row.RowIndex.ToString());
// 双击,设置 dbl_click=true,以取消单击响应
row.Attributes["ondblclick"] = String.Format("javascript:dbl_click=true;window.open('DummyProductDetail.aspx?productid={0}');", id);
row.Attributes["ondblclick"] = String.Format("javascript:dbl_click=true;alert('您双击了ID={0}的这条数据');", id);
//
row.Attributes["style"] = "cursor:pointer";
//row.Attributes["title"] = "单击选择行,双击打开详细页面";
//"javascript:__doPostBack('GridView2$ctl02$sc','')"
//"javascript:__doPostBack('GridView2$ctl03$sc','')"
//"javascript:__doPostBack('GridView2$ctl04$sc','')"
//"javascript:__doPostBack('GridView2$ctl05$sc','')"
//"javascript:__doPostBack('GridView2$ctl06$sc','')"
//"javascript:setTimeout("if(dbl_click){dbl_click=false;}else{__doPostBack('GridView2','Select$2')};", 1000*0.3);"
}
}
base.Render(writer);
}
protected void command(object o, CommandEventArgs e)
{
string id = e.CommandArgument.ToString();
MessageBox.show(this, "您单击了ID=" + id + "的这条数据");
sel(id);
}
#18
我怎么感觉你就象瞧不起人呢?
这种东西非常简单,问题是许多入门书都缺乏asp.net基本概念。代码就是类似这样的
这话让你说的 我特不爱听 如果你真能把问题解决了 你是高手 关键 滥竽充数的
#19
我说句公道话,虽然他说话比较直接,但确实是可以的,我试过,我也遇到这样的问题,谢谢
#20
不好意思,引用错了。是这位朋友的可以的