为什么我自己在DataGrid添加的按钮不能用!

E0888 2004-11-08 11:46:32
为什么我自己在DataGrid添加的按钮不能用! 代码在下面!

<asp:ButtonColumn Text="删除" HeaderText="删除" CommandName="SelDelete"></asp:ButtonColumn>
<asp:TemplateColumn HeaderText="操 作">
<ItemTemplate>
<asp:Button id="SelMID" Runat="server" CommandName="SelMiD" Text="修改"></asp:Button>  
<asp:Button id="SelDel" Runat="server" CommandName="SelDelete" Text="删除"></asp:Button>
</ItemTemplate>
</asp:TemplateColumn>


private void SoftGridList_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
if (e.CommandName=="SelDelete")
{

}

}
我在if (e.CommandName=="SelDelete")设断点
点前一列的删除,就运行到这,后一列的两个按钮都没有运行
...全文
222 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
wellshddelphi 2004-12-03
  • 打赏
  • 举报
回复
sz
E0888 2004-11-08
  • 打赏
  • 举报
回复
怪了!!我的就是不行呀!跟本没有运行到那!
cocainy 2004-11-08
  • 打赏
  • 举报
回复
怎么可能,应该是可以的,给你看看我的代码
<asp:TemplateColumn>
<HeaderStyle Width="5%"></HeaderStyle>
<ItemTemplate>
<asp:LinkButton id="btnDel" runat="server" CommandName="Delete">删除</asp:LinkButton>
</ItemTemplate>
</asp:TemplateColumn>

private void grdPrice_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
Line objLine = new Line();
string PrcID=e.Item.Cells[0].Text.ToString().Trim();
string LineID=Page.Request.QueryString.Get("LineID");

//删除线路价格
if((!objLine.DelPrice(PrcID))&&(!objLine.ErrorMessage.Equals("")))
{
//MessageBox(objLine.ErrorMessage);
}
else
{
GetPriceData(LineID);
//页面刷新
//Page.Response.Redirect(Page.Request.Url.ToString());
}
}
E0888 2004-11-08
  • 打赏
  • 举报
回复
这个问题解决了!是我大意,没有在Page_Load里加上if(!IsPostBack) 所以不行!!!
zzcwhq 2004-11-08
  • 打赏
  • 举报
回复
应该是CommandName="SelDelete"重名的问题
jedliu 2004-11-08
  • 打赏
  • 举报
回复
cocainy((Kony)) 说的很有道理。不过也可以用另外一种方法:

<asp:Button id="SelDel" Runat="server" CommandName="SelDelete" Text="删除"></asp:Button>
里面有个onCommand的函数,添加进去,让它指向一个函数Command()。
在.cs文件里,写出该函数:

DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
if(e.CommandName == "SelDelete")
......
}
cocainy 2004-11-08
  • 打赏
  • 举报
回复
我仔细看了一下,问题出在你实用的模版列上面,
<asp:TemplateColumn HeaderText="操 作">
<ItemTemplate>
<asp:Button id="SelMID" Runat="server" CommandName="SelMiD" Text="修改"></asp:Button>  
<asp:Button id="SelDel" Runat="server" CommandName="SelDelete" Text="删除"></asp:Button>
</ItemTemplate>
</asp:TemplateColumn>
你在一个列里面用了两个button,我想你把拆分成两列,应该就没有问题了,并且,不要用相同的CommcadName,应为程序可能无法识别,到底是那个按钮列触发的事件。用下面的试试看!
<asp:TemplateColumn >
<ItemTemplate>
<asp:Button id="btnEdit" Runat="server" CommandName="EditMid" Text="修改"></asp:Button>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn >
<ItemTemplate>
<asp:Button id="btnDel" Runat="server" CommandName="Del" Text="删除"></asp:Button>
</ItemTemplate>
</asp:TemplateColumn>

-----------------------------------------------------------
另外,操作列一般不用HeaderText,会很丑的!~
cocainy 2004-11-08
  • 打赏
  • 举报
回复
或者你看看你的模版列用的都是同一个commandName,
try use other command
cocainy 2004-11-08
  • 打赏
  • 举报
回复
我刚刚看到你的留言
现在你可以给我看看你的code了。

我在线,这会儿我有空!

111,125

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧