gpt4 book ai didi

c# - 'ItemDataBound' 没有重载匹配委托(delegate) 'System.EventHandler'

转载 作者:太空宇宙 更新时间:2023-11-03 14:15:02 28 4
gpt4 key购买 nike

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

带有值的标签

<asp:Label ID="lblordernr" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.sid").ToString()%>'></asp:Label>

我使用的按钮:

<asp:Button ID="btnPaid" runat="server" Text="Paid" OnClick="rlrtAdres_ItemDataBound"
Style="height: 26px" CssClass="knop" CommandName="btnPaid" />

RepeaterItemDataBound

protected void rlrtAdres_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
Label lblordernr = e.Item.FindControl("lblordernr") as Label;
Repeater myRepeater = (Repeater)sender;
Button btn = (Button)sender;
switch (btn.CommandName)
{
case "btnPaid":
MutateSold("paid", lblordernr.Text);
break;
}
}

我首先有一个普通的 buttonOclick 控件,但我只是不知道如何将它与标签值结合起来,并使用嵌套转发器和此转发器中的每个不可见控件调用 final方法“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;
}
}

最佳答案

您收到在标题中发布的错误,因为 btnPaidClick 事件需要一个带有如下签名的事件处理程序:

protected void btnButton_Click(object sender, EventArgs e)

您将其指向具有以下签名的方法:

protected void rlrtAdres_ItemDataBound(对象发送者,RepeaterItemEventArgs e)

如果 btnPaidlblordernr 在中继器的同一个 ItemTemplate 中,你可以调用 FindControl按钮获取对 lblordernr 的引用。例如,如果 btnPaid 声明如下:

<asp:Button ID="btnPaid" runat="server" Text="Paid" OnClick="btnPaid_Click"
Style="height: 26px" CssClass="knop" />

以下代码将为您提供对 lblOrderNr 的引用。

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
}

或者,您可以将 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
}

关于c# - 'ItemDataBound' 没有重载匹配委托(delegate) 'System.EventHandler',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6754422/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com