I have added the DropDownList in Master Page and here is the code. The problem is solved by adding this line in MasterPage code file in DropDownList SelectedIndexChanged event.
Response.Redirect(Request.Url.AbsoluteUri);
MasterPage.aspx
<form id="form1" runat="server">
<div>
<asp:DropDownList ID="ddlLanguage" AutoPostBack="true" runat="server" OnSelectedIndexChanged="LangaugeChange">
<asp:ListItem Text="" Value="" />
<asp:ListItem Text="English" Value="2" />
<asp:ListItem Text="Arabic" Value="1" />
</asp:DropDownList>
</div>
<div>
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
</div>
</form>
MasterPage.master.cs:
protected void LangaugeChange(object sender, EventArgs e)
{
Session["languge"] = ddlLanguage.SelectedItem.Value;
Response.Redirect(Request.Url.AbsoluteUri);
}
Default.aspx:
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
<br />
<br />
<asp:GridView ID="gvText" runat="server" AutoGenerateColumns="false" OnRowDataBound="gvText_RowDataBound">
<Columns>
<asp:TemplateField HeaderText=" SeqNo">
<ItemTemplate>
<asp:Label ID="lblSeqno" runat="server" Text='<%# Bind("SEQUENCENO") %>'></asp:Label>
<asp:TextBox ID="txtSeqNo" runat="server" Width="40%" Text='<%# Bind("SEQUENCENO") %>'
MaxLength="4"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</asp:Content>
Default.aspx.cs:
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
if (Session["languge"] != null)
{
BindGrid(Session["languge"].ToString());
}
else
{
BindGrid("1");
}
}
}
private void BindGrid(string selectedLanguageID)
{
DataTable dt = new DataTable();
dt.Rows.Add();
dt.Columns.Add("SEQUENCENO");
if (selectedLanguageID == "2")
{
dt.Rows[0][0] = "ENG";
}
else if (selectedLanguageID == "1")
{
dt.Rows[0][0] = "ARB";
}
gvText.DataSource = dt;
gvText.DataBind();
}
protected void gvText_RowDataBound(object sender, GridViewRowEventArgs e)
{
}