LinkButton Отправить значение для кода Behind OnClick
У меня есть ASP LinkButton
Control, и мне было интересно, как отправить значение коду после нажатия на него? Возможно ли это с этим событием?
<asp:LinkButton ID="ENameLinkBtn" runat="server"
style="font-weight: 700; font-size: 8pt;"
onclick="ENameLinkBtn_Click" ><%# Eval("EName") %></asp:LinkButton>
Ответы
Ответ 1
Просто добавьте параметр CommandArgument
и прочитайте его в обработчике Click
:
<asp:LinkButton ID="ENameLinkBtn" runat="server"
style="font-weight: 700; font-size: 8pt;" CommandArgument="YourValueHere"
OnClick="ENameLinkBtn_Click" >
Затем в событии 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") %>'
Ответ 2
Добавьте в свой элемент управления LinkButton атрибут CommandName и необязательно атрибут CommandArgument. Затем установите атрибут 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
Ответ 3
Попробуйте восстановить свойство текста кнопки ссылки в коде позади:
protected void ENameLinkBtn_Click (object sender, EventArgs e)
{
string val = ((LinkButton)sender).Text
}