我正在将记录加载到aspx页面。我有两个comboxes。 (在这种情况下是AJAX组合框)第二个Loads基于第一个的id。
当我将一个键传递给查询字符串中的页面时,我将数据检索到一个类中,然后从该类填充页面字段。当我设置carrier.selectedvalue = class.1value时,选择显示正确。当我设置product.selectedvalue = class.2value时,选择不会。 (该产品没有选择)
如果我下拉产品组合框的列表,则会根据第一个combox(运营商)加载正确的数据。
我尝试了两种方法:
1)根据来自运营商combox的选定值查询产品sql数据集(第2个数据集) 2)加载所有产品(第2个数据集),然后根据来自运营商combox的值
过滤产品两种方法都使用我需要的值加载第二个combox。这两种方法都没有帮助我让产品组合框在页面渲染后显示所选值。
请注意,我在page_load中执行了所有这些操作
- 提前谢谢。
答案 0 :(得分:0)
问题是你在Page_Load中做了所有事情。在以下事件中按以下顺序执行操作以防止出现问题:
Product.Items.Clear()
有关如何有效使用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。