ASP.NET - 以编程方式生成的删除按钮

时间:2010-04-17 18:48:42

标签: asp.net button

我正在尝试创建一个从数据库中删除行的简单按钮。我想将控件的ID设置为delete_MATERIALID_button,但是,当我这样做时:

<asp:Button ID='delete_<%# Eval("MatID") %>_button' runat="server" Text="Delete" />

我收到一个错误,即无法生成名称。

我知道必须有一个简单的解决方案,我无法理解。

4 个答案:

答案 0 :(得分:4)

按钮的名称必须如下:

<asp:Button ID='<%# Eval("MatID", "delete_{0}_button") %>' runat="server" Text="Delete" />

但是,正如Shuwaiee所说,使用CommandArgument可能是更好的地方。

CommandArgument='<%# Eval("MatID")%>'

答案 1 :(得分:2)

为什么不在CommandArgument中保存ID更容易处理

答案 2 :(得分:0)

你不能这样做,你需要在那里指定一个修复ID,一个命令名称(如删除),你可以在命令参数中传递该id ...而在onCommand事件中你将得到两个这些值,命令名称和命令参数......

niitn dhiman

答案 3 :(得分:0)

您还可以在转发器的OnItemDataBound事件中添加命令参数值。在这种情况下,您可以访问数据项,因此可以非常轻松地从数据项对象中提取ID,找到要绑定的当前行的当前删除按钮,并将命令参数应用于该控件。

例如:

    protected void rptrExample_OnItemDataBound(object Sender, RepeaterItemEventArgs Args)
    {
        if (Args.Item.ItemType == ListItemType.Item || Args.Item.ItemType == ListItemType.AlternatingItem)
        {
            SomeBusinessObj Obj = (SomeBusinessObj)Args.Item.DataItem;

            Button btnDelete = (Button)Args.Item.FindControl("btnDelete");
            btnDelete.CommandArgument = Obj.ID;
        }
    }