Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.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# '无过载;ItemDataBound';匹配委托';System.EventHandler';_C#_Asp.net_Itemdatabound - Fatal编程技术网

C# '无过载;ItemDataBound';匹配委托';System.EventHandler';

C# '无过载;ItemDataBound';匹配委托';System.EventHandler';,c#,asp.net,itemdatabound,C#,Asp.net,Itemdatabound,我有一个嵌套的中继器 正因为如此,我的代码中没有可见的控件,也正因为如此,我发现必须使用FindControl才能使控件可见。 我想在点击按钮后传递标签上的值,但我很难做到正确 该标签包含值 <asp:Label ID="lblordernr" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.sid").ToString()%>'></asp:Label> 我最初有一个普通的Butt

我有一个嵌套的中继器 正因为如此,我的代码中没有可见的控件,也正因为如此,我发现必须使用FindControl才能使控件可见。 我想在点击按钮后传递标签上的值,但我很难做到正确

该标签包含值

<asp:Label ID="lblordernr" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.sid").ToString()%>'></asp:Label>
我最初有一个普通的ButtonClick控件,但我不知道如何将它与标签值结合起来,并调用最后一个方法“MutateSold”,以便使用嵌套的中继器和该中继器中的每个不可见控件进行数据库访问

protected void btnButton_Click(object sender, EventArgs e)
{
    Control myControllblordernr = FindControl("lblordernr");
    Button btn = (Button)sender;
    switch (btn.CommandName)
    {
        case "btnPaid":
            MutateSold("paid", myControllblordernr.ToString());
            break;
     }
}

您在标题中发布了错误,因为
btnPaid
Click
事件需要一个签名如下的事件处理程序:

protectedvoidbtnbutton\u单击(对象发送者,事件参数)

您将它指向一个签名为的方法:

protectedvoid rlrtAdres\u ItemDataBound(对象发送方,RepeaterItemEventArgs e)

如果中继器的
btnPaid
lblordernr
在同一
ItemTemplate
中,您可以调用按钮上的
FindControl
以获取对
lblordernr
的引用。例如,如果
btnPaid
是这样声明的:

<asp:Button ID="btnPaid" runat="server" Text="Paid" OnClick="btnPaid_Click"
    Style="height: 26px" CssClass="knop"  />
或者,您也可以将
lblOrderNr
中的值添加到按钮上的
CommandArgument
属性中,并从那里直接获得它

<asp:Button ID="btnPaid" runat="server" Text="Paid" OnClick="btnPaid_Click"
    CommandArgument='<%# DataBinder.Eval(Container, "DataItem.sid").ToString()%>'
    Style="height: 26px" CssClass="knop" />


protected void btnPaid_Click(object sender, EventArgs e)
{
    var btnPaid = (Button)sender;
    var labelText = btnPaid.CommandArgument;

    //Do whatever else needs to be done
}

受保护的无效btnPaid_单击(对象发送者,事件参数e)
{
var btnPaid=(按钮)发送方;
var labelText=btnPaid.CommandArgument;
//做任何其他需要做的事情
}

@Sjemmie没问题,请参阅我答案的更新。希望有帮助。
<asp:Button ID="btnPaid" runat="server" Text="Paid" OnClick="btnPaid_Click"
    Style="height: 26px" CssClass="knop"  />
protected void btnPaid_Click(object sender, EventArgs e)
{
    var btnPaid = (Button)sender;
    var lblOrderNr = (Label)btnPaid.FindControl("lblordernr");
    var labelText = lblOrderNr.Text;

    //Do whatever else needs to be done
}
<asp:Button ID="btnPaid" runat="server" Text="Paid" OnClick="btnPaid_Click"
    CommandArgument='<%# DataBinder.Eval(Container, "DataItem.sid").ToString()%>'
    Style="height: 26px" CssClass="knop" />


protected void btnPaid_Click(object sender, EventArgs e)
{
    var btnPaid = (Button)sender;
    var labelText = btnPaid.CommandArgument;

    //Do whatever else needs to be done
}