<Columns>
<asp:BoundColumn HeaderText="批号" DataField="批号"/> <asp:HyperLinkColumn HeaderText="卡的总数" DataNavigateUrlField="批号" DataNavigateUrlFormatString="test.aspx?batchid={0}&bcreate=<%=strBeginCreateDate%>&ecreate=<%=strEndCreateDate%>" DataTextField="测试"/>
......
我在cs中用了protected string strBeginCreateDate;
然后在page_load中strBeginCreateDate= "aa";
并且在aspx的其他地方使用<%=strBeginCreateDate%>的确输出了aa.
问题是上面的HyperLinkColumn中却是按字符串直接输出的,并没有当作变量使用,等于输出就是test.aspx?batchid=13&bcreate=<%=strBeginCreateDate%>&ecreate=<%=strEndCreateDate%>,并不是把strBeginCreateDate的变量值输出,请问如何改?????

解决方案 »

  1.   

    什么意思?怎么叫动态生成?DataGrid本来不就是动态的马?这几个参数没有在Sql中select出来,它是附加的查询条件,所以只能这样传。。请问怎么解决。。急啊。。
      

  2.   

    public HyperLinkField GetHyperLinkControl(string[] x)
        {
            HyperLinkField hlf = new HyperLinkField();
            hlf.HeaderText = dr[1].ToString();
            hlf.DataTextField = dr[0].ToString();
            hlf.DataNavigateUrlFields = x;
            hlf.DataNavigateUrlFormatString = default.aspx?id={0} 
            return hlf;
        }
    数组X就是你要传的值,hlf.DataNavigateUrlFormatString后面自己改下应该就可以调用了
      

  3.   

    恩,谢谢huang_u,另外xiahouwen(武眉博<活靶子.NET>)的方法也是对的,只是如果模板列用的<asp:HyperLink好像就不行,直接写<a >就可以做到。谢谢各位!