一、
1
<
asp:TemplateColumn HeaderText
=
"
浏览报表
"
>
2 < ItemStyle HorizontalAlign = " Center " Width = " 80px " ></ ItemStyle >
3 < ItemTemplate >
4 < a target = _blank href = ' <%# "detailspage.aspx?name="+Server.UrlEncode(DataBinder.Eval(Container,"DataItem.REPORTNAME").ToString())+ "&RQ=" + Server.UrlEncode(DataBinder.Eval(Container,"DataItem.RQ").ToString()) %> ' >
5 < asp:Label runat = " server " Text = ' 浏览 ' ID = " LL " /></ a >
6 </ ItemTemplate >
7 </ asp:TemplateColumn >
二、ItemDataBound
2 < ItemStyle HorizontalAlign = " Center " Width = " 80px " ></ ItemStyle >
3 < ItemTemplate >
4 < a target = _blank href = ' <%# "detailspage.aspx?name="+Server.UrlEncode(DataBinder.Eval(Container,"DataItem.REPORTNAME").ToString())+ "&RQ=" + Server.UrlEncode(DataBinder.Eval(Container,"DataItem.RQ").ToString()) %> ' >
5 < asp:Label runat = " server " Text = ' 浏览 ' ID = " LL " /></ a >
6 </ ItemTemplate >
7 </ asp:TemplateColumn >
ItemDataBound事件中
if (e.Item.ItemIndex >= 0)
{
HyperLink link = (HyperLink)e.Item.Cells[0].Controls[0];
link.NavigateUrl="df.aspx?str1=" + link.Text + "&str2=" + e.Item.Cells[3].text;
}
三、TemplateColumn
<asp:TemplateColumn runat="server">其实更方便。下面是我的一段代码:
<asp:DataGrid id="MyDataGrid" runat="server"
AllowPaging="True"
PageSize="12"
Width="95%"
CellPadding="3"
ItemStyle-ForeColor="#000000"
AutoGenerateColumns="false">
<columns>
<asp:TemplateColumn runat="server">
<itemtemplate>
<a href='' onClick='return f_open1("<%#DataBinder.Eval(Container.DataItem,"filename")%>")'><%# DataBinder.Eval(Container.DataItem,"title") %></a> </itemtemplate>
</asp:TemplateColumn>
</columns>
</asp:DataGrid>
四、
在用HTTP方式提交的时候,最好是把要传输的变量用"Server.UrlEnCode"一下。
这样可以保证数据的完整性,我就出现过这样的问题,为了保险期间,还是用一下为妙。
例:
原题:
<a href='shows.aspx?id=<%#DataBinder.Eval(Container.DataItem,"ID")%>&BigClass=<%#DataBinder.Eval(Container.DataItem,"大类别")%>'>链接字段</a>
把里面的“DataBinder.Eval(Container.DataItem,"filename")”用Server.UrlEnCode()编码器包起来,传到另一个页面时再用Server.UrlDeCode进行解码后,再传到另外的变量。
改过后:
<a href="shows.aspx?id=<%#Server.UrlEnCode(DataBind.Eval(Container.DataItem,"ID"))#>&BigClass=<%#Server.UrlEnCode(DataBind.Eval(Container.DataItem,"大类别")%>">链接字段</a>
在其接收页面里可以这么写:
Dim ID As Integer
ID=Server.UrlDeCode(Request.Querystring("ID"))