关于下拉列表选择

时间:2013-08-31 09:46:16

标签: c# asp.net

我在asp.net中有点新鲜,所以如果我的问题很愚蠢,请原谅我。

实际上我正在通过window.open加载页面(aspx)。所有事情都很顺利的窗口随着请求的页面而来。

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

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

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

对于每一方的下拉列表,我有两种单独的“选定线索”方法。

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

查看pageload调用的代码片段...

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())

希望你能解决我的问题。

2 个答案:

答案 0 :(得分:0)

如果您可以发布您的代码会更好。

但是作为一个建议,我会说在两个不同的reapter控件中添加下拉列表,然后在转发器控件的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实现数据。

答案 1 :(得分: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"));
}