asp.net第二个组合框没有选择值

时间:2013-08-14 20:35:42

标签: c# asp.net

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

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

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

我尝试了两种方法:

1)根据来自运营商combox的选定值查询产品sql数据集(第2个数据集) 2)加载所有产品(第2个数据集),然后根据来自运营商combox的值

过滤产品

两种方法都使用我需要的值加载第二个combox。这两种方法都没有帮助我让产品组合框在页面渲染后显示所选值。

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

- 提前谢谢。

2 个答案:

答案 0 :(得分:0)

问题是你在Page_Load中做了所有事情。在以下事件中按以下顺序执行操作以防止出现问题:

  1. Page_Init:填充运营商物品
  2. Page_Init:设置运营商选择的值
  3. Page_Load:清除商品Product.Items.Clear()
  4. Page_Load:填充产品项目
  5. Page_Load:设置产品选定项目
  6. 有关如何有效使用Page事件的信息,请参阅本指南:http://attemptsatprogramming.blogspot.com/2011/03/practical-guide-to-aspnet-event-model.html

答案 1 :(得分:0)

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

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

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

这里有一些有用的信息:Databinding events for data-bound controls

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

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