解决者高分相送 。。。DataList内嵌控件事件触发问题

dgvictor 2003-10-22 03:53:50
问题:在服务器控件中加一载一个具有DATALIST内嵌的模板文件,想实现内嵌的DATALIST控件也具有编辑功能。为了便于说明,只列出大体格式
模板文件:Skin_Order.ascx
<asp:datalist id ="Order" runat="server">
<EditItemTemplate>
<table>
<tr>
<td><asp:textbox id="txtOrderNo" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "OrdrNo" ) %>'></td>
....
</tr>
</table>
</EditItemTemplate>
<ItemTemplate>
<table>
<tr>
<td<%# DataBinder.Eval(Container.DataItem, "OrdrNo" ) %></td>
....
<td><asp:linkbutton id="edit" runat="server" commandName="Edit" />
</tr>
</table>
<asp:datalist id ="OrderDetail" runat="server">
<ItemTemplate>
<table>
<tr>
<td<%# DataBinder.Eval(Container.DataItem, "productName" ) %></td>
....
<asp:linkbutton id="edit" runat="server" commandName="EditDetail" />

</tr>
</table>
</ItemTemplate>
<EditItemTemplate>
<table>
<tr>
<td><asp:textbox id ="txtProductName" runat="server" text='<%# DataBinder.Eval(Container.DataItem, "productName" ) %>'></td>
....
</tr>
</table>
</EditItemTemplate>
</asp:datalist>
</asp:datalist>


服务器控件:OrderControl.cs
...
public class OrderControl:WebControl, INamingContainer
{
private DataList dataList;
...
protected override void CreateChildControls()
{
// 加载皮肤
Control skin = Page.LoadControl("/Skin_Order.ascx");
DataList dataList = skin.FindControls("Order");
// 关联事件相应事件
this.dataList.ItemDataBound +=new DataListItemEventHandler(dataList_ItemDataBound);
....
if (!Page.IsPostBack)
shouldRebind = false;

}
protected override void OnPreRender(EventArgs e)
{
if (shouldRebind)
this.BindData(); //绑定事件
}
private void dataList_ItemDataBound(object sender,DataListItemEventArgs e){
DataList orderDetail = e.Item.FindControls("OrderDetail")
orderDatail.ItemCommand +=new DataListCommandEventHandler(orderDatail_ItemCommand);
....
}
}


执行情况,最外层的DATALIS控件可以实现新增、编辑、删除都功能,但最内层的DATALIST的事件没有触发,请各位在说说解决办法,另外用CODEHIDDEN方式可以实现,但最内层的DATALIST的事件名称需要在HTML代码中指定才行,否则不能触发最内层的DATALIST事件。。
...全文
39 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

62,046

社区成员

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

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

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

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