在asp:HyperLink NavigateUrl中调用C#函数

时间:2012-03-05 15:31:40

标签: c# asp.net

我有一个名为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" />
                &nbsp;|&nbsp;

我尝试了这个,但它不起作用:

            <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" />
                &nbsp;|&nbsp;

4 个答案:

答案 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管理可能有问题...

enter image description here

enter image description here

enter image description here

答案 2 :(得分:1)

使用asp:Linkbutton,并将所需的值提供给commandArgument属性

例如:

<asp:LinkButton ID="lnkbtnMyLink" runat="server" commandArgument='<%# Eval("ID")%>' />

答案 3 :(得分:1)

  

尝试使用以下代码。

HTML

<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();
}