我在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())
希望你能解决我的问题。
答案 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"));
}