我正在编写代码,从asp控件中读取数据以更新数据库记录。我已经调试了一天,将它追溯到我应该在之前注意到的问题。
该代码首先使用来自数据库的现有值填充控件。当我点击“保存”时,它应该读取控件的当前值并使用这些值进行保存。不幸的是,它实际上使用的是控件在更改之前的值。它没有看到控件的变化。
以下是一个示例:
我在使用我在网上找到的
我在同一页上用于输入新数据和编辑数据。当我输入数据时,它能够正确地识别
页面过于复杂,无法贴出整个页面。我已经尽可能传达了基本细节。我可能犯了一个简单的编码错误,但更可能的是我根本不理解页面的处理方式。
是否有任何已知的问题会导致控件的值似乎没有被更改?
注意1:我曾以为我必须在输入数据后转到另一个字段,但我尝试了这一点,仍然存在问题。
注意2:我同时使用
注意3:这些控件位于一个面板上,页面正在使用
该代码首先使用来自数据库的现有值填充控件。当我点击“保存”时,它应该读取控件的当前值并使用这些值进行保存。不幸的是,它实际上使用的是控件在更改之前的值。它没有看到控件的变化。
以下是一个示例:
<asp:TextBox ID="OtherCourseName_5" runat="server"></asp:TextBox>
这是在btnSave_onClick()
函数中的对应后台代码:
int object_number=5;
string other_course_name_string
= "OtherCourseName_" + object_number.ToString().Trim();
TextBox ocn = utilities
.utils
.FindControlRecursive(this.Master, other_course_name_string) as TextBox;
我在使用我在网上找到的
FindControlRecursive()
函数。虽然它能正常工作,但为了保险起见,我尝试直接访问控件,如OtherCourseName_5.Text
。
即使我只是显示OtherCourseName_5.Text
的值,它也会给出原始值。我在同一页上用于输入新数据和编辑数据。当我输入数据时,它能够正确地识别
TextBox
控件从空到有数据的变化。但当我调用编辑功能(通过传递edit=true
),它就无法正常工作了。我是通过将开关edit=true
作为查询字符串添加来调用它的(程序正确读取该开关,进入适当的代码区域,打印出所有正确的值 - 除了控件的内容!)。页面过于复杂,无法贴出整个页面。我已经尽可能传达了基本细节。我可能犯了一个简单的编码错误,但更可能的是我根本不理解页面的处理方式。
是否有任何已知的问题会导致控件的值似乎没有被更改?
注意1:我曾以为我必须在输入数据后转到另一个字段,但我尝试了这一点,仍然存在问题。
注意2:我同时使用
TextBox
和DropDownList
控件,两者都存在同样的问题。注意3:这些控件位于一个面板上,页面正在使用
SiteMaster
。我没有遇到任何问题,也不认为问题出在这里,但现在我已经开始怀疑物理定律了。