C# Asp.net web表单在按钮上传递参数单击生成内部循环
我正在foreach循环中生成按钮C# Asp.net web表单在按钮上传递参数单击生成内部循环,c#,asp.net,webforms,C#,Asp.net,Webforms,我正在foreach循环中生成按钮 <% foreach (var myObject in myObjectList) { %> <b>Text field</b>: <%= myObject.Text%><br> <asp:Button ID="" runat="server" OnClick="WaitQueueDeleteBtn_Click" Com
<% foreach (var myObject in myObjectList)
{
%>
<b>Text field</b>: <%= myObject.Text%><br>
<asp:Button ID="" runat="server" OnClick="WaitQueueDeleteBtn_Click" CommandArgument="pass myObjectText" Text="Delete"/>
<% } %>
上面的说法可以,但下面的说法不行
<asp:Button ID="" runat="server" OnClick="WaitQueueDeleteBtn_Click" CommandArgument="<%#myObject.Text %>" Text="Delete"/>
这对我来说太容易了
标记
<asp:Repeater ID="Repeater1" runat="server" OnItemCommand="Repeater1_ItemCommand">
<ItemTemplate>
<div><b>Text field</b>: <%# Eval("Text") %></div>
<asp:Button runat="server" CommandArgument='<%# Eval("ID") %>' Text="Delete" />
</ItemTemplate>
</asp:Repeater>
您可以添加多个按钮,使用CommandName
可以确定单击了哪个按钮
希望这有帮助。方法如何
WaitQueueDeleteBtn\u单击defined@un-幸运的是,我更新了问题什么是myObject
?它是否具有名为Text
的属性.Count
正在工作意味着它可能正在收集。请您重新检查可能重复的“是”,myObject有一个名为Text的属性,myObjectList是某个类的列表,比如说Foo。所以myObjectList是List,myObject是Foo,Foo有属性文本
protected void WaitQueueDeleteBtn_Click(object sender, EventArgs e)
{
}
<asp:Repeater ID="Repeater1" runat="server" OnItemCommand="Repeater1_ItemCommand">
<ItemTemplate>
<div><b>Text field</b>: <%# Eval("Text") %></div>
<asp:Button runat="server" CommandArgument='<%# Eval("ID") %>' Text="Delete" />
</ItemTemplate>
</asp:Repeater>
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
Repeater1.DataSource = YOUR_DATA_SOURCE; // myObjectList
Repeater1.DataBind();
// ...
}
}
protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if (e.CommandArgument == null) return;
var id = int.Parse(e.CommandArgument.ToString());
// your logic here ...
}