0

我正在将记录加载到 aspx 页面。我有两个组合框。(在这种情况下为 AJAX 组合框)第二个加载基于第一个的 id。

当我将一个键传递给查询字符串中的页面时,我将数据检索到一个类中,然后我从该类中填充页面字段。当我设置 carrier.selectedvalue = class.1value 时,选择显示正确。当我设置 product.selectedvalue = class.2value 时,选择不接受。(该产品没有选择)

如果我下拉产品组合框列表,则会根据第一个组合框(运营商)加载正确的数据。

我尝试了两种方法:

1)根据从运营商组合框中选择的值查询产品 sql 数据集(第二个数据集) 2)加载所有产品(第二个数据集),然后根据来自运营商组合框的值过滤产品

两种方法都使用我需要的值加载第二个组合框。这两种方法都不能帮助我让产品组合框在页面呈现后显示所选值。

请注意,我在 page_load 中执行所有这些操作

- 提前感谢您的关注。

4

2 回答 2

0

问题是您在 Page_Load 中执行所有操作。在以下事件中按以下顺序执行操作以防止您的问题:

  1. Page_Init:填充运营商项目
  2. Page_Init:设置运营商选择值
  3. Page_Load:清除项目Product.Items.Clear()
  4. Page_Load:填充产品项
  5. Page_Load:设置产品选择项

有关如何有效使用页面事件的信息,请参阅本指南:http: //attemptsatprogramming.blogspot.com/2011/03/practical-guide-to-aspnet-event-model.html

于 2013-08-14T21:00:26.810 回答
0

Gthompson83 让我走上了正轨。这是一个数据绑定问题。我将产品组合框(第二个组合框)的集合移动到数据绑定事件中,如下所示:

    protected void cboProduct_DataBound(object sender, EventArgs e)
    {
        // Set the Product cbo 
        cboProduct.SelectedValue = c.Product_ID.ToString();
    }

这就是全部。该类仍根据查询字符串中的值填充到 Page_Load 事件中。触发 DataBound 事件后,我使用放置在类中的值来设置产品组合框的值。

一些有用的信息在这里: 数据绑定控件的数据绑定事件

在上面链接的页面上有一个关于“嵌套数据绑定控件”的好部分。

请注意,我没有完全遵循该示例...我没有以编程方式对第二个组合框进行数据绑定...仅捕获 DataBound 事件就足以让我设置 selectedvalue。

于 2013-08-15T15:01:00.747 回答