将gridview的selecteditem值作为字符串传递给另一个页面 [英] Passing selecteditem value of a gridview to another page as a string
问题描述
我的gridviews的OnrowDataBounding,OnselectedIndexchanged事件正常工作。选择控件后,按预期传递给另一个页面,但即使在调用页面和details.aspx页面中,selectedindex datakey值也为null。我喜欢将此selectedindex值传递给字符串,从而在详细信息页面中使用查询字符串。请帮我正确编码。
我也按照http://www.codeproject.com/Questions/103062/How-to-get-the-value-of-a的建议尝试过-selected-in-gridview
我的代码如下
My gridviews's OnrowDataBounding, OnselectedIndexchanged events working ok. after selecting control is passing to another page as intended, but selectedindex datakey value is null even in calling page and in details.aspx page. I like to pass this selectedindex value to a string and thereby use in querystring in details page. please help me out with correct coding.
I have also tried as suggested at http://www.codeproject.com/Questions/103062/How-to-get-the-value-of-a-selected-row-in-gridview
My code is as follows
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns = "False" AllowPaging="true"
OnPageIndexChanging="gdv1_OnPaging" PageSize="5" DataKeyNames = "Material"
OnRowDataBound = "gv1_OnRowDataBound" OnSelectedIndexChanged = "gv1_SelectedIndexChanged"
CSSClass= "~/Styles" EnableViewState="False" PagerSettings-Mode="Numeric" AutoGenerateSelectButton="true">
protected void gv1_OnRowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes["onclick"] = Page.ClientScript.GetPostBackClientHyperlink(GridView1, "Select$" + e.Row.RowIndex);
e.Row.ToolTip = "Click to select this row.";
}
}
protected void gv1_SelectedIndexChanged(object sender, EventArgs e)
{
int selectedIndex = GridView1.SelectedIndex;
string selectedMaterial = (GridView1.DataKeys[selectedIndex]).Value.ToString();
Server.Transfer("Details.aspx");
}
//code in details.aspx
protected void Page_Load(object sender, EventArgs e)
{
if (this.Page.PreviousPage != null)
{
GridView GridView1 = GridView)this.Page.PreviousPage.FindControl("GridView1");
int selectedIndex = GridView1.SelectedIndex;
string selectedMaterial = (GridView1.DataKeys[selectedIndex]).ToString();
}
我的尝试:
What I have tried:
//int selectedIndex = Convert.ToInt32(GridView1.SelectedDataKey[1].ToString());
int selectedIndex = GridView1.SelectedIndex;
string customID = (GridView1.DataKeys[selectedIndex]["pkCityId"]).ToString();
推荐答案
+ e.Row .RowIndex);
e.Row.ToolTip = 点击选择此行。 ;
}
}
受保护 void gv1_SelectedIndexChanged( object sender,EventArgs e)
{
int selectedIndex = GridView1.SelectedIndex;
string selectedMaterial =(GridView1.DataKeys [selectedIndex])。Value.ToString();
Server.Transfer( Details.aspx);
}
// details.aspx中的代码
受保护 void Page_Load( object sender,EventArgs e)
{
if ( this .Page.PreviousPage!= null )
{
GridView GridView1 = GridView)< span class =code-keyword> this .Page.PreviousPage.FindControl( GridView1跨度>);
int selectedIndex = GridView1.SelectedIndex;
string selectedMaterial =(GridView1.DataKeys [selectedIndex])。ToString();
}
" + e.Row.RowIndex); e.Row.ToolTip = "Click to select this row."; } } protected void gv1_SelectedIndexChanged(object sender, EventArgs e) { int selectedIndex = GridView1.SelectedIndex; string selectedMaterial = (GridView1.DataKeys[selectedIndex]).Value.ToString(); Server.Transfer("Details.aspx"); } //code in details.aspx protected void Page_Load(object sender, EventArgs e) { if (this.Page.PreviousPage != null) { GridView GridView1 = GridView)this.Page.PreviousPage.FindControl("GridView1"); int selectedIndex = GridView1.SelectedIndex; string selectedMaterial = (GridView1.DataKeys[selectedIndex]).ToString(); }
我的尝试:
What I have tried:
//int selectedIndex = Convert.ToInt32(GridView1.SelectedDataKey[1].ToString());
int selectedIndex = GridView1.SelectedIndex;
string customID = (GridView1.DataKeys[selectedIndex]["pkCityId"]).ToString();
您好abmkp,
您需要添加pkCityId列到网格的DataKeyNames属性,如下所示;
Hi abmkp,
You need to add the column pkCityId to the DataKeyNames property of the grid as per below;
<asp:gridview id="GridView1" runat="server" autogeneratecolumns="False" allowpaging="true" OnPageIndexChanging="gdv1_OnPaging" PageSize="5" DataKeyNames = "Material,pkCityId" OnRowDataBound = "gv1_OnRowDataBound" OnSelectedIndexChanged = "gv1_SelectedIndexChanged" CSSClass= "~/Styles" EnableViewState="False" PagerSettings-Mode="Numeric" AutoGenerateSelectButton="true"</asp:gridview>
亲切的问候
Kind Regards
这篇关于将gridview的selecteditem值作为字符串传递给另一个页面的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!