按下按钮后,从窗体视图的下拉列表中获取所选项目,值或索引

时间:2009-02-25 16:12:12

标签: c# asp.net

我有一个带有插入模板的formview。在此模板中,有一个下拉列表,其中包含我希望用户可以选择的多个项目。在下拉列表旁边有一个按钮,我用它将下拉列表中的所选项目添加到插入模板中也存在的gridview。

我的问题是,当我单击按钮从下拉列表中添加所选项目时,下拉列表中的所选项目,索引或值将不可用。我正在使用OnClick事件处理程序从按钮单击中捕获事件,但我怀疑这里有一些模板的刷新,我不理解,因为似乎没有任何东西可以从按钮事件处理程序访问。我不相信发生了回发,因为我已经为我的按钮禁用了CausesValidation属性。

4 个答案:

答案 0 :(得分:2)

您似乎也在回发上绑定了DDL。如果ddl数据没有硬编码并且您在Page_Load中调用了ddl数据绑定函数,则需要调用此函数以确保它不受回发限制:

if(!IsPostBack)
{
    BindDDL();
}

否则我们需要更多信息来帮助您,请发布您的代码。

答案 1 :(得分:0)

如果您点击附加了OnClick eevent的asp:Button,那么无论CauseValidation是否为真,您都会回发到服务器。

您是否将数据绑定到DropDownList?如果是这样,并且您在回发时重新绑定它,那么您将没有您期望的所选项目。

你可以在这里粘贴代码吗?

答案 2 :(得分:0)

我必须看到代码,但听起来你在拉动所选项目之前得到重新绑定。检查这一点的一种方法是添加一个监视器,然后确保在各种ASP.NET事件中编码然后观察。

如果没有看到你在代码中做了什么,我无法分辨这是否是拖拽无序或你编码的东西。但你所描述的症状符合Page_Load场景中的典型绑定,这就是jmein瞄准的目标在

答案 3 :(得分:0)

所以它证明了这完全是我的错。我拥有的formview控件包含在一个没有启用视图状态的面板中。这样可以防止下拉列表记住我选择它的项目。

感谢大家的意见和建议。