代码:
CS:
protected void dgMovie_ItemDataBound(object sender, DataGridItemEventArgs e)
{
...
DataGrid dg = new DataGrid();
dg.ItemDataBound+=new DataGridItemEventHandler(dg_ItemDataBound);
dg.ItemCommand+=new DataGridCommandEventHandler(dg_ItemCommand);
...
}
public void dg_ItemDataBound(object sender, DataGridItemEventArgs e)
{
string s = "";//绑定添加DataGrid绑定事件 这里OK
}
public void dg_ItemCommand(object sender, DataGridCommandEventArgs e)
{
//绑定添加DataGrid按钮事件 这里不执行没有反应
if (e.CommandName.Equals("btn_Delete"))
{
BindList();
}
}
ASPS:
<asp:LinkButton ID="btn_Delete" runat="server" CommandName="btn_Delete" CommandArgument='<%# DataBinder.Eval(Container, "DataItem.MovieOrderID") %>'>删除</asp:LinkButton>
<asp:Button ID="LinkButton1" runat="server" CommandName="btn_Delete" CommandArgument='<%# DataBinder.Eval(Container, "DataItem.MovieOrderID") %>' />
我用两种按钮都没有成功
为什么
ItemDataBound可以执行而ItemCommand不执行
CS:
protected void dgMovie_ItemDataBound(object sender, DataGridItemEventArgs e)
{
...
DataGrid dg = new DataGrid();
dg.ItemDataBound+=new DataGridItemEventHandler(dg_ItemDataBound);
dg.ItemCommand+=new DataGridCommandEventHandler(dg_ItemCommand);
...
}
public void dg_ItemDataBound(object sender, DataGridItemEventArgs e)
{
string s = "";//绑定添加DataGrid绑定事件 这里OK
}
public void dg_ItemCommand(object sender, DataGridCommandEventArgs e)
{
//绑定添加DataGrid按钮事件 这里不执行没有反应
if (e.CommandName.Equals("btn_Delete"))
{
BindList();
}
}
ASPS:
<asp:LinkButton ID="btn_Delete" runat="server" CommandName="btn_Delete" CommandArgument='<%# DataBinder.Eval(Container, "DataItem.MovieOrderID") %>'>删除</asp:LinkButton>
<asp:Button ID="LinkButton1" runat="server" CommandName="btn_Delete" CommandArgument='<%# DataBinder.Eval(Container, "DataItem.MovieOrderID") %>' />
我用两种按钮都没有成功
为什么
ItemDataBound可以执行而ItemCommand不执行
protected void dlShowEmp_ItemCommand(object source, DataListCommandEventArgs e)
{
if (e.CommandName == "select")
{
this.dlShowEmp.SelectedIndex = e.Item.ItemIndex;
this.bindEmp();
}
}
protected void dlShowEmp_DeleteCommand(object source, DataListCommandEventArgs e)
{
string empID = this.dlShowEmp.DataKeys[e.Item.ItemIndex].ToString();
DbOperate DO = new DbOperate();
DO.deleteEmp(empID);
this.bindEmp();
}
我的按钮并不是说一定是删除的啊
比如也可以是btn_Add btn_update btn_databind ..
像这些事件都是可以在ItemCommand里面执行的先不用管我是用来做什么的
重要的是他这里不执行我的代码
dg.ItemDataBound+=new DataGridItemEventHandler(dg_ItemDataBound);
dg.ItemCommand+=new DataGridCommandEventHandler(dg_ItemCommand); 这两个事件委托不会再执行,所以造成事件丢失。
重新返回一次的时候没有执行DataBound()
也就没有执行dg.ItemDataBound+=new DataGridItemEventHandler(dg_ItemDataBound);
dg.ItemCommand+=new DataGridCommandEventHandler(dg_ItemCommand);
所以就不执行了
但要是这样的话如何给他加呢
因为不知道主DataGrid会绑定多少钱,是什么id
也没有办法在page.load给他们加啊
那就得在
page_load
{
bindlist()
if(!ispostback)
{
}
}
这样了吗,也就是load给多绑一次,但这样总是感觉不是很好
因为不知道主DataGrid会绑定多少钱,是什么id
====
不明白说些什么?
{ this._BindData();
}
foreach(DataGridItem er in this.DataGrid1.Items)
{
//在这里找找这个控件
}
foreach(DataGridItem er in this.DataGrid1.Items)
{
//在这里找找这个控件
}
也就是在load的时候查找这个控件然后添加事件?