在页面回发或刷新后刷新ASP.NET中的通用列表

时间:2011-10-24 05:50:49

标签: c# asp.net

我有其他麻烦,我无法解决。

在ASP.NET中,我有DropDownList对象,它从通用列表中获取数据。在ASP.NET页面

<tr><td>Choose category</td>
<td><asp:DropDownList id="list_categories" runat="server"></asp:DropDownList></td>
<td>
<asp:RequiredFieldValidator ControlToValidate="list_categories" runat="server" Display="Static" ErrorMessage="Select category" ID="verify_category" ValidationGroup="add_link_group">
</asp:RequiredFieldValidator></td></tr>

和后面的代码:

private void generate_select( DropDownList select ) {

         BusinessLayerArcht layer = LoadDataFromBL();

         foreach ( CategoriesCtrlDto cto in layer.Categories ) {          
            select.Items.Add( cto.Name );
         }
      }

和Page_Load

generate_select( list_categories );

我尝试使用Clear()但是当我添加一个到所选类别的新链接时,它将被插入第一个类别 如果我不调用.Clear()函数,那么就可以了,但是在页面刷新之后,该列表包含重复的类别

我刚开始 GMail的 YMail AOL

插入新链接或刷新页面的其他事件后,列表将显示为: GMail的 YMAil AOL GMail的 YMAil AOL

如果我刷新页面四次​​,那么列表就有了 GMail的 YMAil AOL GMail的 YMAil AOL GMail的 YMAil AOL GMail的 YMAil AOL

重复四次,因此它会在每页回复或刷新时重复。 如果(Page.isPostBack)

,我还尝试清除缓存

1 个答案:

答案 0 :(得分:0)

你必须做

if(!Page.IsPostBack)
generate_select(list_categories);

!Page.IsPostBack ==&gt;如果不是回发。如果每次回发都执行代码,它将插入重复的记录