1

首先,我设法创建了一个 Web 应用程序,在该应用程序中,我动态创建的用户控件被重新创建并在回发时使用正确的信息重新填充。我不确定我的问题是什么,但我希望您能够根据我的情况帮助我解决:

在我的页面上,我将要创建的控件数量输入到硬编码的文本框(在 aspx 页面上),然后单击确定按钮。这反过来又在后台使用 c# 动态创建指定数量的用户控件。

到目前为止,所需数量的动态控件都在页面上的表格中。下一个...

我在每个动态用户控件上有 1 个文本框和 4 个保管箱。当我在文本框字段中输入公司名称并按回车键或单击离开(在文本更改事件上)时,它会自动返回并且文本框保留我输入的公司名称。

根据此字符串,从数据库中填充保管箱。现在,当我从保管箱中选择所需的项目并单击保存按钮(位于页面上的动态控件之外)时,它会插入数据库,但事实证明,在此回发时,保管箱中的索引有已重置并插入错误的值。

下面的图片首先显示它应该如何,然后显示它是如何。

基本上公司名称保留在动态控件的文本框中,但我从下拉框中选择的信息会重置为第一个索引。

应该如何

实际情况如何

4

2 回答 2

1

没有代码很难说出发生了什么,但这是一个常见的错误:

如果您在页面加载事件中填充/创建下拉列表控件并回发,代码将重新填充/重新创建控件。If(!IsPostBack)这就是为什么您必须在页面加载事件中使用类似的东西。否则,它会在您每次进行回发时执行该代码,实际上只是想在您的事件处理程序中为该按钮执行代码。

于 2013-01-23T14:33:04.243 回答
1

如果您正在动态创建控件,请确保在Page_Init事件中执行此操作。必须在每次回发时重新创建动态控件。它们的状态在 Page_Init 之后恢复(如果是回发),因此请确保仅在Page_Load要覆盖它们时才设置它们的值。

于 2013-01-23T14:39:44.817 回答