一个简单的页面传值问题!
我页面上有一个textbox,其值在一个button事件中写入数据库,该textbox的初值为当日时间字符串,写入正常,但我使用一个calender的单击事件改变其值后(新选定的时间),textbox中值显示正常,但button事件的数据库写入却为空。
应当如何处理,才能在数据库中插入我选定的值?
我也知道是页面重新加载时没有保留下原来选定的值,但这块的原理了解太浅,望高手们在方法上予以提示,在原理上也加以指导.
谢谢!
------解决方案--------------------textbox的原始值是在哪里赋的?
如果是在 Page_Load里
就加上 if(!IsPostback){ 给textbox赋原始值;}
然后请问textbox是不是服务器端控件,如果不是。
请用Request.Form[ "textboxName "].value 接值
------解决方案--------------------calender也用不着刷新页面吧
------解决方案--------------------定义个static变量保存数据
------解决方案--------------------你的描述似乎看不出来什么。你需要自己调试,例如在page_load等等各个控件的入口和结束处设置断点,在运行时使用“快监视”功能查看这个TextBox的Text属性。
“我也知道是页面重新加载时没有保留下原来选定的值”这是不对的。TextBox正常情况下自己维护Text的值,页面回发不会丢。
通常,你应该在页面上无关的地方放置一个Button,然后当测试使用页面时,随机地按这个Button来测试各个控件是否正常地保存状态。除非你是开发那种“禁止ViewState”的静态页面,否则这个测试Button是保证asp.net页面质量的一个首要指标,可以及时发现程序重大问题。
------解决方案--------------------你从一开始就放一个测试Button来故意制造页面postback,看看能不能提前发现问题,不把问题归咎于calendar。如果是正常,那么你把calendar的处理应该详细说明白。
------解决方案--------------------UP
------解决方案--------------------你主要要自己断点调试,然后贴出经过跟踪发现变量的值有问题的代码。
我建议你在实际用代码学习那些书上或者网上的例子的时候,每一次都这样浪费几秒钟时间增加一个Button,然后验证它们所说的功能和编程方法的时候,随机按下这个按钮。你会发现确实有一些示例程序连多出一个Button都应付不了,套用它们的程序逻辑就会让你吃很多亏。而你应该只学习那些不论是否页面上有回发控件,都能够把业务逻辑执行得正确的示例程序的编程方法。
------解决方案-------------------- 调试下大概就知道什么原因了`
------解决方案--------------------MS前一两星期也遇到这个问题,,怎么解决忘了,呵呵,,好象是页面刷新的问题
------解决方案--------------------Page_Load事件中的代码加上:
if(!IsPostBack)
{
//....
}