簡體   English   中英

將變量值從 aspx 鏈接按鈕傳遞給 ASP 中的代碼。 NET 使用 C#

[英]Pass variable value from aspx link button to code behind in ASP. NET using C#

在 for 循環中,如何將變量從 asp 標記傳遞到代碼隱藏並訪問變量值

CommandArgument有效,但顯示<# gigs[x].Id%> - 不是值。

象素

<%for (int x = 0; x < gigs.Count; x++){%>

<asp:LinkButton ID="LinkButton2" CssClass="btn btn-danger mt-3" runat="server" 
     UseSubmitBehavior="false" CommandArgument="<# gigs[x].Id%>" 
     OnClick="LinkButton2_Click">Hide Gig <i class="fa fa-eye-slash ml-1"></i>
</asp:LinkButton>

背后的代碼

protected void LinkButton2_Click(object sender, EventArgs e)
{
    LinkButton lnk = sender as LinkButton;
    String Value1 = lnk.CommandArgument;
    Response.Write(Value1);
}

結果

<# gigs[x].Id%>

預期結果

1

嘗試改用<%# gigs[x].Id %>並在Page_Load事件上調用Page.DataBind()

<%= %> 是一個縮短的 response.Write() 並且對於任何服務器標記都不能作為屬性有效。

<%# %> 可以使用,只有當容器是數據綁定的(你的情況下的頁面)。

你最好使用強類型中繼器。 您可以將ItemType設置為您的 class gigs ,並可以完全訪問它的所有屬性。 然后您可以輕松地在 LinkButton 中使用它們。

Repeater1.DataSource = gigs;
Repeater1.DataBind();

然后在aspx中

<asp:Repeater ID="Repeater1" runat="server" ItemType="MyNameSpace.MyClass.Gig">
    <ItemTemplate>

        <asp:LinkButton ID="LinkButton2" CommandArgument='<%# Item.Id %>' OnClick="LinkButton2_Click" runat="server">Hide Gig</asp:LinkButton>

    </ItemTemplate>
</asp:Repeater>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM