Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.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# Asp.net web表单在按钮上传递参数单击生成内部循环_C#_Asp.net_Webforms - Fatal编程技术网

C# Asp.net web表单在按钮上传递参数单击生成内部循环

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循环中生成按钮

<% 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 ...
}