C#.Net:我的DropDownlist中的值重复

问题描述 投票:0回答:4

我有一个下拉列表ddlTables,它包含我的数据库中的表名,我根据所选的表显示网格中的表内容。

我使用以下代码将数据填充到Page_Load事件的下拉列表中:

ddlTables.Items.Add("-SELECT-");
String getTables = "SELECT TABLE_NAME FROM Information_Schema.Tables where Table_Type = 'BASE TABLE'";
MySqlConnection objMyCon10 = new MySqlConnection(strProvider);
objMyCon10.Open();
MySqlCommand cmd10 = new MySqlCommand(getTables, objMyCon10);
MySqlDataReader r = cmd10.ExecuteReader();
while (r.Read())
{
    ddlTables.Items.Add(r[0].ToString());
}
objMyCon10.Close(); 

当我点击Go按钮时,它应该显示所选表格的表格内容。

但是点击Go按钮,我发现它首先调用Page_Load事件然后调用btnGo_Click

所以它复制了我的下拉列表中的所有值。

最后,单击Go按钮后,我的下拉列表中的每个表名都会出现两次。

如何删除这些重复的值?

c# .net asp.net .net-3.5 drop-down-menu
4个回答
2
投票

尝试将该代码放入

if(!Page.IsPostBack)
{
    //your code
}


1
投票

将您的代码填入以填充下拉列表中的项目

if(!Page.IsPostback)
{[dropdown filling/binding code here]}

条件检查,这将避免在您单击按钮时再次填写值,并保留选择(如果您在下拉列表中做出的任何选择)


1
投票

示例程序

if(!IsPostBack) 
{ 
    //Creating Items 
    ListItem li1 = new ListItem("Male", "1"); 
    ListItem li2 = new ListItem("Female", "2"); 
    ListItem li3 = new ListItem("Secret", "3"); 
    //Adding Items to DropDownList 
    DropDownList1.Items.Add(li1); 
    DropDownList1.Items.Add(li2); 
    DropDownList1.Items.Add(li3); 
}

0
投票

2个选项:

如果您只需要首先访问该页面时保持一致的项目,请使用:

if(!Page.IsPostback) { /* bind here */ };

如果您需要在页面刷新时生效值,则禁用控件上的视图状态,并且不会在回发时将下一个值重新应用于下拉列表。

© www.soinside.com 2019 - 2024. All rights reserved.