Hi yinyang205,
I have checked your code and modified it. Refer the below sample code.
HTML
CS.aspx
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:BoundField DataField="Id" HeaderText="Id" />
<asp:BoundField DataField="CompanyName" HeaderText="Company Name" />
<asp:TemplateField>
<ItemTemplate>
<asp:HyperLink ID="Details1" Text="Details" runat="server" NavigateUrl='<%# "~/CustomerDetails.aspx?CompanyName=" + Server.UrlEncode(Eval("CompanyName").ToString()) %>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
CS.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[] { new DataColumn("Id", typeof(int)), new DataColumn("CompanyName", typeof(string)) });
dt.Rows.Add(1, "Company A - 12");
dt.Rows.Add(2, "Company B");
dt.Rows.Add(3, "Company C 12-33");
GridView1.DataSource = dt;
GridView1.DataBind();
}
}
CustomerDetails.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(Request.QueryString["CompanyName"]))
{
Response.Write("<b>Company Name : </b>" + Server.UrlDecode(Request.QueryString["CompanyName"]));
Response.Write("<br/><br/><b>Encoded URL : </b>" + Request.Url.AbsoluteUri);
Response.Write("<br/><br/><b>Decoded URL : </b>" + Server.UrlDecode(Request.Url.AbsoluteUri));
}
}
Screenshot
