Передача значения selecteditem gridview на другую страницу в виде строки
Мои gridviews OnrowDataBounding, onselectedindexchanged события работают нормально. после выбора элемент управления переходит на другую страницу, как и предполагалось, но значение selectedindex datakey равно null даже в вызывающей странице и на странице details.aspx. Мне нравится передавать это значение selectedindex в строку и тем самым использовать в querystring на странице сведений. пожалуйста, помогите мне с правильным кодированием.
Я также попробовал, как было предложено в http://www.codeproject.com/Questions/103062/How-to-get-the-value-of-a-selected-row-in-gridview
Мой код выглядит следующим образом
<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(); }
Что я уже пробовал:
//int selectedIndex = Convert.ToInt32(GridView1.SelectedDataKey[1].ToString()); int selectedIndex = GridView1.SelectedIndex; string customID = (GridView1.DataKeys[selectedIndex]["pkCityId"]).ToString();