首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

关于datalist传值有关问题

2012-12-15 
关于datalist传值问题本人在做网页传值的时候出现了问题,在产品页面用datalist绑定数据库中的product项,如

关于datalist传值问题
本人在做网页传值的时候出现了问题,在产品页面用datalist绑定数据库中的product项,如下图:
源代码加入如下传值:

                                    <asp:Image ID="Image1" runat="server" Height="107px"
                                     ImageUrl='<%#DataBinder.Eval(Container.DataItem,"url") %>'
                                     Width="130px" />
                                </td>
                            </tr>
                            <tr>
                                <td>
                      <a href='44.aspx?pname=<%# DataBinder.Eval(Container.DataItem,"pname") %>' style="font-size: 12pt; text-decoration:none">
                <%# DataBinder.Eval(Container.DataItem,"pname") %></a>


转到产品的详细页面后,发现有的能传到值,大部分的不行,如下2图:


而此页主要代码如下:

        if (!IsPostBack)
        {
            string idStr =Request.Params["pname"].ToString();
            SqlConnection sqlconn = sqlCon.getCon();
            sqlconn.Open();
            string sqlstrbind = "select * from product where pname='" + idStr + "'";
            SqlCommand sqlcom = new SqlCommand(sqlstrbind, sqlconn);
            SqlDataReader sdr = sqlcom.ExecuteReader();
            if (sdr.Read())
            {
                TextBox1.Text = sdr["details"].ToString();
                Label4.Text = sdr["pname"].ToString();
                Image1.ImageUrl = sdr["url"].ToString();
            }
            sdr.Close();


        }



问题怎么解决呢?为什么有个别的可以呢?
[最优解释]
你需要进行编码
  <a href='44.aspx?pname=<%# Server.UrlEncode(Eval("pname").ToString()) %>'
[其他解释]
为什么没人呢,T.T
[其他解释]
你发问题都不找对版面,来的人能多嘛
[其他解释]
你要么传这个产品的ID编号,如果你传递的是中文的话,需要进行编码,否则在低版本或其他浏览器中是不会自动进行编码和解码的。

 <a href='44.aspx?pname=<%#Server.UrlEncode(DataBinder.Eval(Container.DataItem,"pname").ToString()) %>' style="font-size: 12pt; text-decoration:none">

然后另一个页面需要解码:
if (!IsPostBack) 
{
    string idStr =Server.UrlDecode(Request.QueryString["pname"].ToString()); 
     ....
}

应该就可以了

[其他解释]
Server.UrlDecode后是错误的,无需进行 Server.UrlDecode

热点排行