300分求解事件冒泡问题,结帖时另开新帖送分!

ldljlq 2004-11-16 10:45:21
一个DataList显示所有服装产品,项模板中含有一个DataGrid,显示同一个款式的不同颜色的服装。

显示正常,但是DataGrid无法编辑,据说是事件冒泡的问题。

目前知道的解决方法是在aspx页面中指定DataGrid的EditCommand="DataGrid_EditCommand",这样确实可以解决问题,但是我要在后台代码中解决问题的办法。
...全文
191 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
lhcoolhacker 2004-11-16
  • 打赏
  • 举报
回复
示例如下:
/// <summary>
/// 点击事件
/// </summary>
/// <param name="e">事件参数</param>
public void OnClick(EventArgs e)
{
if(Click != null)
Click(this, e);

// 冒泡事件
RaiseBubbleEvent(this, e);
}

// 响应子控件(LinkButton)冒泡事件
protected override bool OnBubbleEvent(object source, EventArgs args)
{
bool handled = false;

if(args is CommandEventArgs)
{
CommandEventArgs ce = (CommandEventArgs)args;
OnClick(ce);
handled = true;
}

return handled;
}
amendajing 2004-11-16
  • 打赏
  • 举报
回复
mark,找本c的书看看
ldljlq 2004-11-16
  • 打赏
  • 举报
回复
又研究了一下MSDN上的资料。
难道要自己定义一个从datagrid继承的控件?然后重写它的OnBubbleEvent方法?
那。。。。这样还不如直接在aspx页面中直接指定这个子控件的事件方法来得方便。
ldljlq 2004-11-16
  • 打赏
  • 举报
回复
protected override bool OnBubbleEvent(object source, EventArgs e)
{
bool handled = false;
if (e is CommandEventArgs)
{
CommandEventArgs ce = (CommandEventArgs)e;
if (ce.CommandName == "Click")
{
OnClick(ce);
handled = true;
}
else if (ce.CommandName == "Reset")
{
OnReset(ce);
handled = true;
}
else if (ce.CommandName == "Submit")
{
OnSubmit(ce);
handled = true;
}

}
return handled;
}

重写父控件的OnBubbleEvent方法?在其中把子控件的事件冒泡?好像有点头绪了,去试试先。
jasonboy 2004-11-16
  • 打赏
  • 举报
回复
帮忙up
trnbo 2004-11-16
  • 打赏
  • 举报
回复
可能我理解错楼主的意思了,^_^
see

http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/cpguide/html/cpconbubblingcommandevent.asp

http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/cpguide/html/cpconeventbubblingcontrolsample.asp

ldljlq 2004-11-16
  • 打赏
  • 举报
回复
(DataList中嵌套DataGrid,子控件事件无法捕获)
DataList的itemcommand中根本捕获不到这个datagrid产生的事件,怎么捕获这个事件??
hebookboy 2004-11-16
  • 打赏
  • 举报
回复
up
trnbo 2004-11-16
  • 打赏
  • 举报
回复
http://www.ddvip.net/web/aspnet/technique/57.htm
ldljlq 2004-11-16
  • 打赏
  • 举报
回复
附我的解决方法:
aspx文件
<asp:DataGrid id="dgList" runat="server" Width="100%" DataKeyField="id" AutoGenerateColumns="False" OnEditCommand="DataGrid_OnEditCommand" OnCancelCommand="DataGrid_OnCancelCommand" OnUpdateCommand="DataGrid_OnUpdateCommand" OnDeleteCommand="DataGrid_OnDeleteCommand">

cs文件
public void DataGrid_OnUpdateCommand(object source,System.Web.UI.WebControls.DataGridCommandEventArgs e){}
public void DataGrid_OnCancelCommand(object source,System.Web.UI.WebControls.DataGridCommandEventArgs e){}
public void DataGrid_OnDeleteCommand(object source,System.Web.UI.WebControls.DataGridCommandEventArgs e){}
ldljlq 2004-11-16
  • 打赏
  • 举报
回复
说明一下,本来是想300分求在后台代码中的解决方法,但是 trnbo(【没有蛀牙】→闭关修行) 给的是MSDN上的资料,这些发帖之前已经看过了,想求更好的解决方法才发这帖子的。saucer(思归) 的方法虽然正确,但不是我想要的解决方法,所以两位各给50分,不再另外开帖子送分了。
ldljlq 2004-11-16
  • 打赏
  • 举报
回复
决定不再探索更好的办法了,因为解决方法我试过了,只有在aspx页面中直接指定事件方法是最方便的。
也就是思归说的那种,不过不需要dg.EditCommand += new DataGridCommandEventHandler(YourHandlerHere);来委托。

结帖了。
saucer 2004-11-16
  • 打赏
  • 举报
回复
you can bind the EditCommand to the datagrid inside the ItemCreated event for DataList

<asp:DataList id="ItemsList"

OnItemCreated="Item_Created"


void Item_Created(Object sender, DataListItemEventArgs e)
{

if (e.Item.ItemType == ListItemType.Item ||
e.Item.ItemType == ListItemType.AlternatingItem)
{
DataGrid dg = (DataGrid)e.Item.FindControl("DataGrid1");
dg.EditCommand += new DataGridCommandEventHandler(YourHandlerHere);
....
内容概要:本文介绍了一套面向电力系统微电网调度领域的科研资源包,聚焦于风能、太阳能、储能系统及电网之间的交互调度问题,提供基于Matlab和Python的完整代码实现方案。资源涵盖微电网两阶段鲁棒优化经济调度、考虑“源-荷-储”协同的主动配电网优化、电动汽车作为移动储能参与多区域电网功率平抑等前沿研究方向,并融合鲸鱼优化算法、多元宇宙优化算法等智能优化方法进行模型求解。同,资源扩展至综合能源系统、碳捕集利用、氢能耦合、算力-电力联合市场等新兴交叉领域,配套提供数学建模竞赛(如“认证杯”)的思路与实战支持,内容体系完整,具有较强的科研复现与创新引导价值。; 适合人群:具备一定编程基础,熟悉Matlab或Python语言,从事电力系统、微电网调度、可再生能源集成、储能优化配置、智能优化算法应用等相关领域的研究生、科研人员及工程技术人员。; 使用场景及目标:①用于微电网经济调度、可再生能源消纳、储能协同优化等课题的仿真研究;②支撑数学建模竞赛、毕业设计、期刊论文复现与算法改进;③深入理解智能优化算法在复杂电力系统调度中的建模逻辑与求解机制; 阅读建议:建议结合网盘提供的代码与资料系统学习,优先掌握基础调度模型构建与算法实现流程,再逐步拓展至多能源耦合与不确定性优化等高级场景,注意按照目录结构循序渐进,以提升整体理解深度与科研实践能力。
内容概要:本文针对综合能源系统中的供热网络调度问题,提出了一种结合热惯性建模与虚拟储能量化的优化方法。通过建立热力管道的温度传播动态模型,采用有限差法对热惯性特性进行空间与间上的离散化求解,精确刻画热量在管网中的传输延迟与热能衰减效应。进一步地,将管道中蕴含的热惯性潜力抽象为“虚拟储能”资源,量化其在不同间段内的蓄放热能力,并将其集成到系统调度模型中,从而提升供热系统对可再生能源波动的适应能力与运行经济性。研究基于Matlab平台完成建模与仿真,验证了该方法在增强系统灵活性、提高能源利用效率及降低整体运行成本方面的有效性。; 适合人群:具备能源系统、热力学、数值计算或电力系统优化等相关背景,从事综合能源系统、智慧能源网络、区域能源规划等领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:① 掌握热力管道热惯性特性的有限差法建模与数值求解技术;② 学习如何将物理系统的惯性特性转化为可调度的“虚拟储能”资源;③ 构建并仿真含虚拟储能的综合能源系统优化调度模型;④ 支持“认证杯”等数学建模竞赛中能源类赛题的技术实现与方案设计。; 阅读建议:建议结合Matlab代码同步学习,重点关注有限差法的空间离散策略、边界条件处理方式以及虚拟储能量化模型的构建逻辑,可进一步拓展至多能互补系统中的协同优化算法研究。

62,267

社区成员

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

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

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

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