我有一个名为getUserID的函数,我想通过asp:HyperLink中的NavigateUrl传递用户ID。
这是我的超链接:
<asp:HyperLink ID="lnkMyAccount" Text="My Account"
NavigateUrl="~/Users/View.aspx" style="color:White" CssClass="myAreaLink"
Runat="server" Font-Size="Small" />
|
我尝试了这个,但它不起作用:
<asp:HyperLink ID="lnkMyAccount" Text="My Account"
NavigateUrl='<%# "~/Users/View.aspx" + CPDManagement._code.SearchSelection.getUserID().Tables[0].Rows[0]["u_ID"].ToString() %> style="color:White" CssClass="myAreaLink"
Runat="server" Font-Size="Small" />
|
答案 0 :(得分:2)
在后面的代码中做什么呢?
if(Page.IsPostBack)
{
lnkMyAccount.NavigateUrl = String.Format("~/Users/View.aspx?UserID={0}", myUserID);
}
因此它只是以编程方式覆盖导航网址
这对你有用吗?
您可以通过在页面上调用数据绑定来获得<%# .. %>
数据绑定语法。
if(Page.IsPostBack)
{
Page.DataBind();
}
我会先做第一种方式
答案 1 :(得分:2)
立即尝试
你在风格之前错过了'
。
我希望你处于绑定模式。(在转发器内......)
<asp:HyperLink ID="lnkMyAccount" Text="My Account"
NavigateUrl='<%# "~/Users/View.aspx" + CPDManagement._code.SearchSelection.getUserID().Tables[0].Rows[0]["u_ID"].ToString() %> ' style="color:White" CssClass="myAreaLink"
Runat="server" Font-Size="Small" />
它确实有用
您的CPD管理可能有问题...
答案 2 :(得分:1)
使用asp:Linkbutton
,并将所需的值提供给commandArgument
属性
例如:
<asp:LinkButton ID="lnkbtnMyLink" runat="server" commandArgument='<%# Eval("ID")%>' />
答案 3 :(得分:1)
尝试使用以下代码。
<asp:GridView ID="grd" runat="server" onrowdatabound="grd_RowDataBound">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:HyperLink ID="delete" runat="server" Text='<%#GetData().Rows[0][0].ToString() %>' CommandName="delete"></asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
public DataTable GetData()
{
DataTable Dt = new DataTable();
DataColumn DC = new DataColumn("Test");
Dt.Columns.Add(DC);
DataRow Dr = Dt.NewRow();
Dr["Test"] = "1";
Dt.Rows.Add(Dr);
return Dt;//.Rows[0]["test"].ToString();
}
protected void Page_Load(object sender, EventArgs e)
{
grd.DataSource = GetData();
grd.DataBind();
}