关于在用户控件中无法执行DataGrid1_ItemDataBound事件

fjbell 2005-04-16 12:43:06
代码如下:
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)

{


///首先在DATAGRID控件找到删除按钮
ImageButton WysDelete = (ImageButton)e.Item.FindControl("WysDelete");

if (WysDelete!=null)
{
//为每个删除按钮添加对话框属性
WysDelete.Attributes.Add("onclick","javascript:return confirm('你确定要删除选择的新闻?');");
}

}
当我点中datagrid这个删除按钮.发现没有办法处理这个事件.单步测试过程中就发现没有执行到这一步.在page_load()事件执行完后就退出了。
郁闷中~~~~~~~~
...全文
138 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
fjbell 2005-04-16
  • 打赏
  • 举报
回复
问题得到解决.谢谢咯。
saucer 2005-04-16
  • 打赏
  • 举报
回复
you have to hook the handler with DataGrid's ItemDataBound event, either through

OnItemDataBound="ItemDataBoundHandlerMethodName"

in aspx/ascx pages

or

DataGrid1.ItemDataBound += new DataGridItemEventHandler(ItemDataBoundHandlerMethodName);



also try in your template

....
<asp:Button id="WysDelete" runat="server" OnClick="DeleteClicked" ... />


void DeleteClicked(Object sender, EventArgs e)
{

Button btn = (Button)sender;
DataGridItem dgi = (DataGridItem)btn.Parent.Parent;

Page.Response.Write("delete button on row " + dgi.ItemIndex.ToString() + " is clicked<BR>");
}
fjbell 2005-04-16
  • 打赏
  • 举报
回复
if(!Page.IsPostBack)
{
try
{
OleDbConnection myConnection = new OleDbConnection(DataBaseDB.ConnectionString);
String cmdText="Select top 15 NewsID,Title,Pubdate from News ";
OleDbDataAdapter OleDbAda = new OleDbDataAdapter(cmdText,myConnection);
myConnection.Open();
DataSet ds = new DataSet();
OleDbAda.Fill(ds);
DataGrid1.DataSource=ds;
DataGrid1.DataBind();
myConnection.Close();
}
catch(Exception ex)

{
Response.Write(ex);
}
}
这个是我绑定数据的


下面这个是事件驱动:
public void ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)

{


///首先在DATAGRID控件找到删除按钮
ImageButton WysDelete = (ImageButton)e.Item.FindControl("WysDelete");
//ImageButton WysDelete =(ImageButton)e.Item.Cells[4].Controls[0];
if (WysDelete!=null)
{
//为每个删除按钮添加对话框属性
WysDelete.Attributes.Add("onclick","return confirm('你确定要删除选择的新闻?');");
}

}
fjbell 2005-04-16
  • 打赏
  • 举报
回复
我就改了这里:<asp:DataGrid id="DataGrid1" AutoGenerateColumns="False" OnItemDataBound="ItemDataBound" runat="server">
本来是没有OnItemDataBound="ItemDataBound"
我直接调用DataGrid_ItemDataBound(object sender,....)的.但是一直无法成功.
就在加了OnItemDataBound="ItemDataBound"后.
我就直接用:
public void ItemDataBound(object sender,...)
就可以咯。
saucer 2005-04-16
  • 打赏
  • 举报
回复
>>>我放在OnItemDataBound的事件中就可以啊。

什么意思?如果DataGrid1_ItemDataBound不是跟ItemDataBound事件相关,你怎么能看到confirm?把你其他的编码贴出来,还有,确认你是在


if (!IsPostBack)
{
//......
}

里绑定DataGrid1的
fjbell 2005-04-16
  • 打赏
  • 举报
回复
我放在OnItemDataBound的事件中就可以啊。
为什么上面的方法就不行呢?
哪里错误
saucer 2005-04-16
  • 打赏
  • 举报
回复
move the code inside ItemCreated event handler instead

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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