I am sorry that i have not marked as answered(i am new to this site). In continuation of my query I expanded my code to retrieve selectedIndex value, passing selected datakeyfield value into string, which further is used to make SQL query string for further display of data. Here, my page is redirecting to new page, while debugging also i found selectedindex field value is passed in calling page, but not passing to destination page where i expecting to execute my SQL Query. Here my relevant code goes for your reference. The string gvDetailsMaterial is finally becoming null instead of selected value. Exception arising at catching int variable selectedIndex itself. Thanking you in advance
<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" >
<SelectedRowStyle CssClass= "SelectedRowStyle"/>
<Columns>
<asp:BoundField DataField="Material" HeaderText="MaterialCode" >
<ItemStyle Width="20%"/>
</asp:BoundField>
<asp:BoundField DataField="BRDESC" HeaderText="Brief Description" >
<ItemStyle Width="60%"/>
</asp:BoundField>
<asp:BoundField DataField="Mtrl Grp" HeaderText="Material Gr" >
<ItemStyle Width="20%"/>
</asp:BoundField>
</Columns>
</asp:GridView>
//code in calling page
protected void gv1_OnRowDataBound(object sender, System.Web.UI.WebControls.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;
Session["selectedIndex"] = GridView1.SelectedIndex;
string selectedMaterial = (GridView1.DataKeys[selectedIndex]["Material"]).ToString();
Response.Write("MaterialCd: " + (GridView1.DataKeys[selectedIndex]["Material"]).ToString() + "<br />");
//here i used OnRowDataBound to select gridview data key value by clicking anywhere on the row
Server.Transfer("~/MaterialStatus/Details.aspx");
//Code in Details page followes
protected void Page_Load(object sender, EventArgs e)
{
if (this.Page.PreviousPage != null)
{
// Control MainContent = this.Page.PreviousPage.Master.FindControl("MainContent");
GridView GridView1 = (GridView)this.Page.PreviousPage.FindControl("GridView1");
int selectedIndex = GridView1.SelectedIndex;
string selectedMaterial = (GridView1.DataKeys[selectedIndex]["Material"]).ToString();
gvDetailsMaterial = selectedMaterial;
// GridViewRow selectedRow = GridView1.SelectedRow;
// gvDetailsMaterial= selectedRow.Cells[0].Text;
}