LinkButton отправляет значение в код позади OnClick

У меня есть элемент управления ASP LinkButton, и мне было интересно, как отправить значение в код позади при нажатии? Возможно ли это с этим событием?

<asp:LinkButton ID="ENameLinkBtn" runat="server" 
    style="font-weight: 700; font-size: 8pt;"
    onclick="ENameLinkBtn_Click" ><%# Eval("EName") %></asp:LinkButton>

person atrljoe    schedule 21.03.2011    source источник


Ответы (3)


Просто добавьте к параметру CommandArgument и прочитайте его в обработчике Click:

<asp:LinkButton ID="ENameLinkBtn" runat="server" 
    style="font-weight: 700; font-size: 8pt;" CommandArgument="YourValueHere" 
    OnClick="ENameLinkBtn_Click" >

Затем в вашем событии клика:

protected void ENameLinkBtn_Click(object sender, EventArgs e)
{
    LinkButton btn = (LinkButton)(sender);
    string yourValue = btn.CommandArgument;
    // do what you need here
}   

Также вы можете установить аргумент CommandArgument при привязке, если вы используете LinkButton в любых привязываемых элементах управления, выполнив следующие действия:

CommandArgument='<%# Eval("SomeFieldYouNeedArguementFrom") %>'
person Kelsey    schedule 21.03.2011
comment
Вы можете объявить отправителя как LinkButton и пропустить приведение типов: protected void ENameLinkBtn_Click(LinkButton sender, EventArgs e) { string yourValue = sender.CommandArgument; // делаем здесь то, что вам нужно } (Извините, я пытался, но НЕ МОГУ форматировать код) - person Jovie; 11.03.2016

Добавьте атрибут CommandName и, при необходимости, атрибут CommandArgument в элемент управления LinkButton. Затем задайте для атрибута OnCommand имя вашего обработчика событий Command.

<asp:LinkButton ID="ENameLinkBtn" runat="server" CommandName="MyValueGoesHere" CommandArgument="OtherValueHere" 
          style="font-weight: 700; font-size: 8pt;" OnCommand="ENameLinkBtn_Command" ><%# Eval("EName") %></asp:LinkButton>

<asp:Label id="Label1" runat="server"/>

Затем он будет доступен, когда в вашем обработчике:

protected void ENameLinkBtn_Command (object sender, CommandEventArgs e)
{
   Label1.Text = "You chose: " + e.CommandName + " Item " + e.CommandArgument;
}

Дополнительные сведения см. в MSDN.

person Ken Pespisa    schedule 21.03.2011

Попробуйте получить свойство text кнопки ссылки в коде:

protected void ENameLinkBtn_Click (object sender, EventArgs e)
{
   string val = ((LinkButton)sender).Text
}
person dustyhoppe    schedule 21.03.2011