【问题标题】:Obtaining selected item, value or index from drop down list in formview after button press按下按钮后从表单视图中的下拉列表中获取所选项目、值或索引
【发布时间】:2009-02-25 16:12:11
【问题描述】:

我有一个带有插入模板的表单视图。在这个模板中有一个下拉列表,其中包含我希望用户能够从中选择的一些项目。在下拉列表旁边有一个按钮,我使用该按钮将下拉列表中的选定项目添加到也存在于插入模板中的网格视图中。

我的问题是,当我单击按钮从下拉列表中添加所选项目时,下拉列表中的所选项目、索引或值不可用。我正在使用 OnClick 事件处理程序从按钮单击中捕获事件,但我怀疑此处正在进行某种模板刷新,我不明白,因为按钮事件处理程序似乎无法访问任何内容。我不相信回发正在发生,因为我为我的按钮禁用了 CausesValidation 属性。

【问题讨论】:

    标签: c# asp.net


    【解决方案1】:

    您似乎也在回发上绑定您的 DDL。如果 ddl 数据没有硬编码,并且您在 Page_Load 中调用了 ddl 数据绑定函数,则需要像这样调用该函数以确保它不会在回发时绑定:

    if(!IsPostBack)
    {
        BindDDL();
    }
    

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

    【讨论】:

      【解决方案2】:

      如果您单击附加了 OnClick 事件的 asp:Button,那么无论 CausesValidation 是否为真,您都将回发到服务器。

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

      你能把代码贴在这里吗?

      【讨论】:

        【解决方案3】:

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

        没有看到您在代码中所做的事情,我无法判断这是拖放异常还是您编写的代码。但是您描述的症状符合 Page_Load 场景中的典型绑定,这就是 jmein 的目标在。

        【讨论】:

        • 如果你有 Page_Load ,它会 100% 清晰。顺便说一句,我在这方面有点纳粹,因为我还没有看到当 IsPostBack = true 时运行代码的好案例。 ;-)
        【解决方案4】:

        所以事实证明这都是我的错。我拥有的 formview 控件包含在未启用视图状态的面板中。这似乎阻止了下拉列表记住我选择的项目。

        感谢大家的cmets和建议。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2023-03-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多