C# 如何将值从LinkButton发送到服务器?
我有许多链接按钮,例如:C# 如何将值从LinkButton发送到服务器?,c#,asp.net,.net,linkbutton,C#,Asp.net,.net,Linkbutton,我有许多链接按钮,例如: <asp:LinkButton runat="server" onclick="cmdCancellaComunicazione_Click">X</asp:LinkButton> X 他们调用相同的服务器方法,cmdcancelacomunicazione\u单击。但我需要区分它们(例如,传递给服务器的值) 我怎么做?我知道有CommandArgument,但我不能将它设置为一个值,例如您可以使用事件处理程序的sender参数。将其转换为
<asp:LinkButton runat="server" onclick="cmdCancellaComunicazione_Click">X</asp:LinkButton>
X
他们调用相同的服务器方法,cmdcancelacomunicazione\u单击
。但我需要区分它们(例如,传递给服务器的值)
我怎么做?我知道有CommandArgument,但我不能将它设置为一个值,例如您可以使用事件处理程序的sender参数。将其转换为链接按钮:
protected void cmdCancellaComunicazione_Click(Object sender, EventArgs e)
{
LinkButton lbtn = (LinkButton) sender;
}
然后,您可以使用它的或来进行区分。在您的方法中,您可以将
发送方
强制转换为链接按钮
,并检查其中的值。OnCommand
将是一个很好的选择
protected void ButtonCommand(object sender, CommandEventArgs e)
{
string theCommand = e.CommandArgument.ToString();
}
只需将OnCommand
和CommandArgument
添加到link按钮
<asp:LinkButton id="LinkButton1" Text="The Text" OnCommand="ButtonCommand" CommandArgument="YourInfo" runat="server"></asp:LinkButton>
您的代码在
链接按钮上没有指定ID
,这似乎很奇怪
您应该能够为服务器端分配命令参数
:
yourLinkButton.CommandArgument = yourValue;
然后它将在OnClick
处理程序的服务器端读取
protected void cmdCancellaComunicazione_Click(object sender, EventArgs e)
{
LinkButton btn = (LinkButton)sender;
if (btn.CommandArgument.Equals(something here))
{
// do something
}
else
{
// do something else
}
}
这是在网格中创建的还是正在绑定的?如果是这样,我将为LinkButton
实现OnDataBinding
事件,如下所示:
<asp:LinkButton ID="yourLinkButton"
runat="server" OnDataBinding="yourLinkButton_DataBinding"
onclick="cmdCancellaComunicazione_Click">X</asp:LinkButton>
您的问题中是否还有其他未包含的内容?使用数据绑定设置commandargument,例如
。当然,您需要调用BindData使其绑定。但关键是,你不能用
作为服务器控件值。你试过谷歌吗@我的勇敢者:我的问题不同!我也有同样的问题:无法使用自定义变量设置id:我在一个for each…@markzzz:在aspx标记上哪里使用foreach
?为什么不使用像GridView或Repeater这样的webdatabound控件和codebehind?相同。无法使用请说明您是如何构建中继器/循环的,以及如何绑定它。例如,如果这是一个中继器,您可以使用CommandArgument=''
这是一个很好的解决方案!但是如何将值传递给数据绑定呢?我的意思是,如果我在foreach中有link按钮,我想给它加一个累进的数字,比如btn.CommandArgument=“value”+counter代码>无论如何,CommandArgument值存储在哪里?我想只在服务器端?这很好,例如,用户无法看到它的值@markzzz在OnDataBinding
,很容易创建计数器,只需向页面类添加全局变量,然后每次触发OnDataBinding
事件时都会增加它。命令参数将存储在ViewState
中。
protected void protected void lblID_DataBinding(object sender, System.EventArgs e)
{
LinkButton btn = (LinkButton)sender;
btn.CommandArgument = yourValue;
}