userid传递int类型的没有问题。
但是month传递字符串出现问题。如果month为“一二三”。那么传递到新的页面。链接显示也是month=一二三
但是读出来的确是“一二”为什么没有“三”呢。
这是 <asp:HyperLinkField DataNavigateUrlFields="userid,month" DataNavigateUrlFormatString="~/jifen/kaohe/jfhuabodetail.aspx?userid={0}&month={1}"
DataTextField="userid" HeaderText="员工编号" />
这是读取的代码
string month =Request.QueryString["month"].ToString();找了一上午都说用server.urlencode和Server.UrlDecode进行传递值。但是在gridview中怎么用呢?
但是month传递字符串出现问题。如果month为“一二三”。那么传递到新的页面。链接显示也是month=一二三
但是读出来的确是“一二”为什么没有“三”呢。
这是 <asp:HyperLinkField DataNavigateUrlFields="userid,month" DataNavigateUrlFormatString="~/jifen/kaohe/jfhuabodetail.aspx?userid={0}&month={1}"
DataTextField="userid" HeaderText="员工编号" />
这是读取的代码
string month =Request.QueryString["month"].ToString();找了一上午都说用server.urlencode和Server.UrlDecode进行传递值。但是在gridview中怎么用呢?
string.Format("...aspx?userid={0}&month={1}",userid,Server.UrlEncode(month));
<globalization requestEncoding ="utf-8" responseEncoding ="utf-8" fileEncoding="utf-8" />
</system.web>
我就換了個模板列TemplateField試試,在其中加入LinkButton,通過LinkButton的單擊事件帶參數跳頁就可以得到“一二三”了 protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
LinkButton lbtn = (LinkButton)e.Row.FindControl("LinkButton1");
lbtn.CommandArgument = e.Row.Cells[0].ToString();
}
}
protected void LinkButton1_Click(object sender, EventArgs e)
{
LinkButton lbtn = (LinkButton)sender;
Response.Redirect(string.Format("collasp.aspx?userid={0}&month={1}", lbtn.CommandArgument, lbtn.Text));
}
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# "report_monthdetail.aspx?khdx=" + Server.UrlEncode(DataBinder.Eval (Container.DataItem,"khdx").ToString()) %>' Text="详细信息"></asp:HyperLink>
</ItemTemplate>
======
如果更改为Request["month"].ToString();试试看呢?我记得地址栏中的长度最多256个字节,不过,感觉应该不会影响啊。
在新的页面接受数据的时候不用解码。直接用就可以了。我也不想用中文字符。可是总得学会怎么用吧。楼上的方法我还没有用过。不知道语法有问题没有
DataTextField="userid" HeaderText="员工编号" />
==
<asp:TemplateField HeaderText="员工编号">
<ItemTemplate>
<a href='<%# "~/jifen/kaohe/jfhuabodetail.aspx?userid=" + Eval("userid").ToString() + "&month=" + Server.UrlEncode(Eval("month").ToString()) %>' ><%# Eval("userid") %></a>
</ItemTemplate>
</asp:TemplateField>接受页面
string month = Server.UrlDecode(Request.QueryString["month"]);