Ron*_*nIL 3 asp.net user-controls gridview webforms ascx
我有一个问题,我不知道是否可以做到.
我有一个aspx页面,加载用户控件(ascx)的用户活动的dedpends.
用户控件有一个gridview,其中一列是超链接.
<asp:HyperLinkField DataNavigateUrlFormatString='<%page %>'
DataTextField="ReqId" HeaderText="Request No." DataNavigateUrlFields="ReqId" />
Run Code Online (Sandbox Code Playgroud)
我想要点击那个超链接,它将指向带参数的同一页面,但我不能正确.由于某种原因所以我尝试了这个:
<%string page = Page.Request.Path + "reqid={0}"; %>
Run Code Online (Sandbox Code Playgroud)
但在页面中,链接将%page%称为字符串.有人可以指导我如何做到这一点.
ps它曾经像这样工作,ascx在解决方案的根文件夹中,当我将所有控件移动到根目录中名为"Controls"的文件夹时,问题就开始了
<asp:HyperLinkField DataNavigateUrlFormatString="?reqid={0}"
DataTextField="ReqId" HeaderText="???? ????" DataNavigateUrlFields="ReqId" />
Run Code Online (Sandbox Code Playgroud)
提前致谢.
使用模板字段并添加超链接.
<asp:TemplateField HeaderText="Request No.">
<ItemTemplate>
<asp:HyperLink ID="EditHyperLink1" runat="server"
NavigateUrl='<%# Page.Request.Path + "?reqid=" + Eval("ReqId") %>'
Text='<%# Eval("ReqId") %>' >
</asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用GridView_RowDatabound事件处理程序并更改特定控件的Navigateurl.
protected void myGV_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
HyperLink myHL = (HyperLink)e.Row.FindControl("EditHyperLink1");
myHL.NavigateUrl = Page.Request.Path + "?reqid=" + e.Row.Cells[0].Text.ToString();
}
}
Run Code Online (Sandbox Code Playgroud)
我假设ReqId出现在第一个细胞中.
| 归档时间: |
|
| 查看次数: |
10220 次 |
| 最近记录: |