我正在尝试创建一个从数据库中删除行的简单按钮。我想将控件的ID设置为delete_MATERIALID_button
,但是,当我这样做时:
<asp:Button ID='delete_<%# Eval("MatID") %>_button' runat="server" Text="Delete" />
我收到一个错误,即无法生成名称。
我知道必须有一个简单的解决方案,我无法理解。
答案 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;
}
}