Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将值从LinkButton发送到服务器?_C#_Asp.net_.net_Linkbutton - Fatal编程技术网

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