0

我对asp.net有点陌生,所以如果我的问题很愚蠢,请原谅我。

实际上我正在通过window.open. 一切正常的窗口都与请求的页面一起出现。

此页面在同一行中有两个面板,即。在两个 td 中。

一个面板用于显示来自不同类型来源的数据,另一个面板用于显示不同类型的来源。
现在我的问题是这个下拉列表。在我的页面 m 中,大约有 10 个下拉菜单,其中 5 个在左侧,5 个在右侧。

当我将值设置为两侧的这些下拉列表时(左列 5 下拉列表具有不同的值,第 5 列下拉列表具有不同的值)。

对于每一侧的这些下拉菜单,我有两种单独的方法用于“选定的 vlues”。

现在的问题是…………无论我最后调用哪种方法………​​…值都出现在下拉列表的两侧。尽管我使用了不同的方法来选择值。

查看页面加载调用的代码片段...

if (!IsPostBack)
{ 
   // methods for filling all dropdowns-----
   FetchData();  // for first side 
   FetchData_Q2(); // second side                                         
}


private void FetchData() 
{ 
     ddlCardType.SelectedValue = "2"; 
     ddlProductType.SelectedValue = "5"; 
} 

private void FetchData_Q2() 
{ 
     ddlCardType.SelectedValue = "1"; 
     ddlProductType.SelectedValue = "1"; 
}

所以这里第一面(FetchData())下拉菜单也显示数据就像第二面(FetchData_Q2())

希望你能解决我的问题。

4

2 回答 2

0

如果要为下拉列表设置选定值,则必须更改 selectedindex。您可以尝试以下方法:

private void FetchData()
{
    ddlCardType.SelectedIndex = ddlCardType.Items.IndexOf(ddlCardType.Items.FindByValue("2"));
    ddlProductType.SelectedIndex = ddlProductType.Items.IndexOf(ddlProductType.Items.FindByValue("5"));
}

private void FetchData_Q2()
{
    ddlCardType.SelectedIndex = ddlCardType.Items.IndexOf(ddlCardType.Items.FindByValue("1"));
    ddlProductType.SelectedIndex = ddlProductType.Items.IndexOf(ddlProductType.Items.FindByValue("1"));
}
于 2013-08-31T16:15:47.873 回答
0

如果你能发布你的代码会更好。

但作为一个建议,我会说在两个不同的转发器控件中添加下拉列表,然后在转发器控件的 ItemDataBound 事件中填充下拉列表。

更好的选择是在每个 td (或您的面板)中使用这样的 jQuery:

for(var i = 0;i<5;i++)
{
 var options = $("#options");
 $.each(data, function() {
    options.append($("<option />").val(this.ID).text(this.Name));
 });
 //append the $("#options") to a parent div
}

可以使用 Ajax GET 获取数据的地方。

于 2013-08-31T10:13:17.047 回答