如何获取GRIDVIEW选中行索引值,并传递到下一个页面。。
我在a.aspx页面的GRIDVIEW中放了一个LinkButton,我想当点击LinkButton时获取GRIDVIEW中改行的某一个值,然后将这个值传递到b.aspx...
我在a.aspx页面的GRIDVIEW中放了一个LinkButton,我想当点击LinkButton时获取GRIDVIEW中改行的某一个值,然后将这个值传递到b.aspx页面中,要怎么做。急求高手指教啊。。能实现再加分。。
展开
5个回答
展开全部
linkbutton有个属性CommandArgument绑定的时候给这个属性赋与你想传的值。
如id:
CommandArgument=‘Eval("id")’
然后通过onclick事件去触发:
LinkButton lkb = sender as LinkButton;
string id=lkb.CommandArgument;这个id就是你要传递到下个页面的值。
最后跳转:
可以用URL传参
Response.Redirect("b.aspx?id="+id);
也可以用Session去传
Session["id"]=id;
Response.Redirect("b.aspx“);
再在b页面获取这个Session
注:中文的URL传参需要去编码HttpUtility.UrlEncode(id);
希望对你有帮助^-^
如id:
CommandArgument=‘Eval("id")’
然后通过onclick事件去触发:
LinkButton lkb = sender as LinkButton;
string id=lkb.CommandArgument;这个id就是你要传递到下个页面的值。
最后跳转:
可以用URL传参
Response.Redirect("b.aspx?id="+id);
也可以用Session去传
Session["id"]=id;
Response.Redirect("b.aspx“);
再在b页面获取这个Session
注:中文的URL传参需要去编码HttpUtility.UrlEncode(id);
希望对你有帮助^-^
展开全部
首先,模版列中有LinkButton, 在它的单击事件里写
protected void LinkButton1_Click(object sender, EventArgs e)
{
//取得别单击的LinkButton
LinkButton lb=(LinkButton)sender;
//取得当前行号
int rowIndex = ((GridViewRow)lb.NamingContainer).RowIndex;
//取当前行、第1列的值;同理,取第i列:Cells[i-1]
string id = GridView1.Rows[rowIndex].Cells[0].Text;
//跳到下一页
Response.Redirect("b.aspx?ID="+id);
}
//在下一页获取
string s = Request.QueryString["ID"].ToString();
/注意:如果你要取的值在模版列中的TextBox里,那取法就不一样了
string id = ((TextBox)GridView1.Rows[rowIndex].Cells[0].FindControl("TextBox的Name属性")).Text;
是不是感觉挺麻烦,事实上Asp.net不提倡这样实现页面跳转的,有专门的HyperLinkField字段,页面代码如下就可以实现:不用写后台代码
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" >
<Columns>
<asp:BoundField DataField="ID" HeaderText="ID" />
<asp:BoundField DataField="Name" HeaderText="名字" />
<asp:HyperLinkField
DataNavigateUrlFields="ID"
DataNavigateUrlFormatString="b.aspx?ID={0}"
DataTextField="Name"
DataTextFormatString="Click Here {0}" HeaderText="连接" />
</Columns>
</asp:GridView>
-------------------------------------------------------
DataNavigateUrlFields="ID" //你要传的字段
DataNavigateUrlFormatString="b.aspx?ID={0}" //跳转地址,{0}占位符
DataTextField="Name" //要显示的字段
DataTextFormatString="Click Here {0}" HeaderText="连接" /> //类似linkButon.text=click here name1
protected void LinkButton1_Click(object sender, EventArgs e)
{
//取得别单击的LinkButton
LinkButton lb=(LinkButton)sender;
//取得当前行号
int rowIndex = ((GridViewRow)lb.NamingContainer).RowIndex;
//取当前行、第1列的值;同理,取第i列:Cells[i-1]
string id = GridView1.Rows[rowIndex].Cells[0].Text;
//跳到下一页
Response.Redirect("b.aspx?ID="+id);
}
//在下一页获取
string s = Request.QueryString["ID"].ToString();
/注意:如果你要取的值在模版列中的TextBox里,那取法就不一样了
string id = ((TextBox)GridView1.Rows[rowIndex].Cells[0].FindControl("TextBox的Name属性")).Text;
是不是感觉挺麻烦,事实上Asp.net不提倡这样实现页面跳转的,有专门的HyperLinkField字段,页面代码如下就可以实现:不用写后台代码
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" >
<Columns>
<asp:BoundField DataField="ID" HeaderText="ID" />
<asp:BoundField DataField="Name" HeaderText="名字" />
<asp:HyperLinkField
DataNavigateUrlFields="ID"
DataNavigateUrlFormatString="b.aspx?ID={0}"
DataTextField="Name"
DataTextFormatString="Click Here {0}" HeaderText="连接" />
</Columns>
</asp:GridView>
-------------------------------------------------------
DataNavigateUrlFields="ID" //你要传的字段
DataNavigateUrlFormatString="b.aspx?ID={0}" //跳转地址,{0}占位符
DataTextField="Name" //要显示的字段
DataTextFormatString="Click Here {0}" HeaderText="连接" /> //类似linkButon.text=click here name1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
}
其中GridView1.EditIndex里面就获得了当前编辑行的索引,可以把 GridView1.EditIndex写在session中(当然也可以写在hiddenfield中,但是多用户操作的时候会有问题),然后在B.aspx页面中用Request[" GridView1.EditIndex "]就可以得到了啊
{
GridView1.EditIndex = e.NewEditIndex;
}
其中GridView1.EditIndex里面就获得了当前编辑行的索引,可以把 GridView1.EditIndex写在session中(当然也可以写在hiddenfield中,但是多用户操作的时候会有问题),然后在B.aspx页面中用Request[" GridView1.EditIndex "]就可以得到了啊
追问
不是很明白啊?能说明白点吗?麻烦了。。
追答
先具体说说你的需求吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" <Columns>
<asp:TemplateField HeaderText="派车单号">
<ItemTemplate>
<asp:HyperLink ID="HyperLink2" runat="server" NavigateUrl='<%# Eval("传得值", "b.aspx?传的值={0}") %>'
Text='<%# Bind("显示的值") %>' ForeColor="blue"></asp:HyperLink>
</ItemTemplate>
<HeaderStyle Width="100px" />
</asp:TemplateField>
</Columns>
</asp:GridView>
不懂可以找我
<asp:TemplateField HeaderText="派车单号">
<ItemTemplate>
<asp:HyperLink ID="HyperLink2" runat="server" NavigateUrl='<%# Eval("传得值", "b.aspx?传的值={0}") %>'
Text='<%# Bind("显示的值") %>' ForeColor="blue"></asp:HyperLink>
</ItemTemplate>
<HeaderStyle Width="100px" />
</asp:TemplateField>
</Columns>
</asp:GridView>
不懂可以找我
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
//编辑按扭
if (e.CommandName == "Edit")
{
//设置编辑行高亮显示
this.GridView1.EditRowStyle.BackColor = Color.FromName("#F7CE90");
//string index= this.GridView1.DataKeys[Convert.ToInt32(e.CommandArgument)].Value.ToString();
int index = Convert.ToInt32(e.CommandArgument);
GridViewRow row = GridView1.Rows[index];
string xh3 = row.Cells[3].Text;
{
//编辑按扭
if (e.CommandName == "Edit")
{
//设置编辑行高亮显示
this.GridView1.EditRowStyle.BackColor = Color.FromName("#F7CE90");
//string index= this.GridView1.DataKeys[Convert.ToInt32(e.CommandArgument)].Value.ToString();
int index = Convert.ToInt32(e.CommandArgument);
GridViewRow row = GridView1.Rows[index];
string xh3 = row.Cells[3].Text;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询