ASP gridview中点击显示详细信息如何写?

我在gridview中使用了一个commandfield控件,代码如下:protectedvoidGridView1_RowEditing(objectsender,Gr... 我在gridview中使用了一个commandfield控件,代码如下:
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{ string Uid = GridView1.DataKeys[e.RowIndex].Value.ToString(); SqlConnection conn = new SqlConnection(); conn.ConnectionString = "Data Source=WWW-76912774763;Initial Catalog=sxhj;Integrated Security=True"; SqlCommand selectsql = new SqlCommand("select * from Usersinfo where Uid = '" + Uid + "'", conn); SqlDataAdapter da = new SqlDataAdapter(); da.SelectCommand = selectsql; DataSet ds = new DataSet(); da.Fill(ds); //return ds; DataSet ds1 = GetDataSet(Uid); GridView2.DataSource = ds1; GridView2.DataBind(); }提示错误 20 “System.Web.UI.WebControls.GridViewEditEventArgs”并不包含“RowIndex”的定义 。
请问需要如何修改才能使gridview1中的一行信息显示在gridview2中
展开
 我来答
一水净身
2012-06-27
知道答主
回答量:21
采纳率:0%
帮助的人:13.5万
展开全部
1、在 GridView1_RowEdting 石建安里面没有 e.RowIndex, 只有 e.NewEditIndexNewIndex 这个属性,应该是你想要的。
你的思路是对的,这句话 string Uid = GridView1.DataKeys[e.RowIndex].Value.ToString();改下: string Uid=GridView1.Rows[e.NewSelectedIndex].Cells["UId这一列的字段"].Text;

我用的是 选择 这个事件 GridView2_SelectedIndexChanging(object sender, GridViewSelectEventArgs e) {}
代码:
protected void GridView2_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
{
string name =GridView2.Rows[e.NewSelectedIndex].Cells[1].Text;
string sql = "select * from Role where Name = '"+name+"'";

DataTable dt = new DataTable();
dt = DBAccessHelper.GetDataTableFromSql(sql);
GridView1.DataSource = dt;
GridView1.DataBind();
}
我这里测试是没有问题的,看看你哪里可以不,不行再说。
追问
我测试了下,提示错误 20 “System.EventArgs”并不包含“NewSelectedIndex”的定义,还有你贴出的代码为何是在gridview2写事件
追答
嗯 ,我的这个是在 gridview2里面写的,我显示的时候 放在 girdview1里面了,这个无所谓,看你怎么弄的就行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
流水无情_AN
2012-06-27 · 超过19用户采纳过TA的回答
知道答主
回答量:34
采纳率:0%
帮助的人:38.1万
展开全部
主要问题还是在于如果定位到那一行,网上有很多,rowEdit我很少用,
给个例子吧,页面端:
<asp:TemplateField HeaderText="操作">
<ItemTemplate>
<asp:LinkButton ID="lbtnEdit" Text='显示详细信息' runat="server" CommandName="EditRow" CommandArgument='<%# Eval("主键") %>'></asp:LinkButton>
</ItemTemplate>
<ItemStyle Width="10%" />
</asp:TemplateField>
后台:
protected void gridview1_RowCommand(object sender, GridViewCommandEventArgs e) {
if ("EditRow".Equals(e.CommandName))
{
string Uid =e.CommandArgument.toString();
更多追问追答
追问
网上确实有很多涉及前台的解决方案,但是我对前台不是很了解,能否解释你的方法如何实现?谢谢
追答
页面端代码直接拷贝覆盖原来显示详细信息字段代码,gridview添加RowCommand事件,在前台设计视图模式点gridview属性,双击事件选项中的RowCommand事件,自动在后台生成事件,你把我的后台代码考进去。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
stydfans
2012-06-28 · TA获得超过668个赞
知道小有建树答主
回答量:1263
采纳率:100%
帮助的人:511万
展开全部
<asp:TemplateField HeaderText="显示详细信息">
<ItemTemplate>

<a href='你要跳转的APSX页面名称(暂定A.ASPX).aspx?关键字(暂定XXXXid)=<%#Eval("XXXXid") %>'>修改</a>
</ItemTemplate>
</asp:TemplateField>然后到A.ASPX页面后台,使用Request.Params["XXXXid"]获取这个ID,再做个查询就OK了。这一条不要放在EditItem下面,做个单独的就行了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xyjing007
2012-06-27
知道答主
回答量:16
采纳率:0%
帮助的人:2.3万
展开全部
在你点gridview1中的某个人的时候,你应该传递该用户的用户编号(能够代表该用户的唯一编号),然后在绑定gridview2时,接收该编号,并为gridview2绑定该用户的所有信息。

gridview的属性中有个datakeyname的属性,将用户表中的用户id那一列的列名填写到该属性中。
追问
这个属性已经设置了
追答
接收该编号,在gridview2绑定数据就行了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
骑猪赶驴儿
2012-06-28 · 超过32用户采纳过TA的回答
知道答主
回答量:115
采纳率:0%
帮助的人:49.6万
展开全部
一般做法,都是链接到另外一个页面,把id带过去,然后根据id查询显示
追问
我也想链接到另外一个页面,但是目前无法获取当前行,路还是一步一步走
追答

<a href="xx.aspx?id=<%#Eval("id") %>">显示详细信息</a>

你获取当前行干吗?详细信息那 跳转页面把id传过就可以。搞不懂你要做什么

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式