C# 如何仅在单击指定按钮时启动DropDownList SelectedIndexChanged事件?

C# 如何仅在单击指定按钮时启动DropDownList SelectedIndexChanged事件?,c#,asp.net,sharepoint,web-parts,C#,Asp.net,Sharepoint,Web Parts,所以。我在页面上生成了很多下拉列表。页面有2个视图,第一个视图有可以更改的DDL,第二个视图正在做其他事情,用户可以更改此视图 因为DDL是生成的,所以我正在protected override void OnInit中重建它们,以便能够按用户查看其中的更改(DDL上的自动回写被禁用) 所以现在来谈谈这个问题 一切正常,但不是完全正确。如果由于回发(由任何按钮单击引起,在本例中是由更改视图的按钮引起的)SelectedIndexChanged事件导致某些DDL更改,页面开始重新加载 只有当用户按

所以。我在页面上生成了很多下拉列表。页面有2个视图,第一个视图有可以更改的DDL,第二个视图正在做其他事情,用户可以更改此视图

因为DDL是生成的,所以我正在
protected override void OnInit
中重建它们,以便能够按用户查看其中的更改(DDL上的自动回写被禁用)

所以现在来谈谈这个问题

一切正常,但不是完全正确。如果由于回发(由任何按钮单击引起,在本例中是由更改视图的按钮引起的)
SelectedIndexChanged
事件导致某些DDL更改,页面开始重新加载

只有当用户按下某个特定的“保存”按钮,并且在按下任何其他按钮(导致回发)后不进行事件拍摄时,是否有办法使
SelectedIndexChanged
事件拍摄?

如果(Page.IsPostback)返回,则添加
到您的
SelectedIndexChanged
事件处理程序,并直接从按钮的
OnClick
方法调用事件处理程序


棘手的部分是,您必须在不使用
EventArgs

的情况下使事件处理程序正常工作。您不能在
SelectedIndexChanged
事件处理程序中检查
Page.IsPostback
?是否可以将所有内容都包装在带有Page.IsPostback的IF逻辑中并检查EventArgs或sender?或者当用户单击“保存”时,您会像这样更改布尔校验吗?!嗯,是的,这是个好主意。但现在我应该如何强制“SelectedIndexChanged”从按钮点击?编辑:Thx,我会试着让你们更详细地说明我应该如何从按钮调用事件处理程序?我应该在其中输入什么参数?ddl_SelectedIndexChanged(此为EventArgs.Empty);显然不起作用:)我应该将DDL作为第一个参数传递吗?EventArgs可以为空吗?因为我有数百个DDL:\所以我应该在循环中以某种方式调用它们?如果不使用
视图
事件参数
,您可以使用
null,null
调用它。至于如何调用它们,您可以在生成它们时将它们添加到列表中,然后进行迭代。或者,如果您出于某种原因不想存储它们,您可以针对特定类型筛选
Page.Controls
。此外,如果您指定更多页面功能,也许我们可以找到更好的方法。