动态生成服务器控件问题 - 请高手指教

问题描述

现正做一个自定义控件,其中需要用到如下内容:(1)在服务端利用代码加入服务器控件...HiddenFieldhf=newHiddenField();hf.ID="hf_TestID";hf.Value="初始值";this.Controls.Add(hf);//注.这里this是本自定义控件本身.Page.Response.Cookies["hfClientID"].value=hf.ClientID;//本行的目的是将本控件的ClientID写入Cookie...(2)在Javascript块中,对这个控件动态赋值:<scriptlanguage="JavaScript">functionSet_NewValue(value){varclientID=GetCookie("hfClientID");//GetCookie是用JavaScript写的一个读cookie的函数,经验证毫无问题varnewTextHiddenObj=document.getElementById(clientID);//经检验,这个ClientID确实是唯一的,没有任何其它重复的if(newTextHiddenObj!=null)newTextHiddenObj.value="新的动态值";alert(newTextHiddenObj.value);}</script>(3)上述内容看起来没有问题,而且alert语句也显示确实赋了新值.但在服务器端,想将这个新值存入数据库时,且无法得到这个值,无论在服务器端用hf.Value还是通过Page.Request["clientID"]的方法,均得到空值;(4)查看使用此自定义控件的页面源码,可以看到,页面适当位置添加了这样的记录:<inputtype="hidden"ID="ctl00_ContentPlaceHolder1_MyControl_hf"Name="ctl00$ContentPlaceHolder1$MyControl$hf"Value="初始值"/>应该说,这条记录是正确生成的.但令人不解的是,页面上通过按钮调用上述javascript方法给这个控件动态赋值后,再查看网页源码,此控件的Value值仍为"初始值",并未改变.但JavaScript的alert语句alert(newTextHiddenObj.value);显示的却是新值;请教高手这是怎么回事?这个值赋哪去了?服务器端如何获得.先谢了.

解决方案

解决方案二:
this.Controls.Add(hf);动态添加的控件再返回服务器时,又经过pageload一次,就不存在了,没有保存viewstate最简单的办法是再pageload中iddenFieldhf=newHiddenField();hf.ID="hf_TestID";hf.Value="初始值";this.Controls.Add(hf);//注.这里this是本自定义控件本身.建议看一下asp。net的控件或页面生存周期相关

时间: 2024-09-10 12:27:52

动态生成服务器控件问题 - 请高手指教的相关文章

此处finally能执行吗,请高手指教

问题描述 此处finally能执行吗,请高手指教 此处的yinally为什么不执行 解决方案 try catch中只有一种条件不会执行finally语句,那就是system.exit() 解决方案二: 对于java程序,运行System.exit()会终止JVMfinally不执行 解决方案三: 再说一个极端的情况try{ ...}finally{ while (true) { }}finally是一个死循环,你说你用任务管理器强关,能保证它执行完么?当然不行.要不电脑还不能关机了. 解决方案四

java 控件显示不出来-为什么控件没显示,请高手指教

问题描述 为什么控件没显示,请高手指教 package listener; import java.awt.*; import javax.swing.*; public class ControCicle1 extends JFrame{ private JButton jbtEnlarge=new JButton(""large""); private JButton jbtShrink=new JButton(""shrink"&

shell中的telnet的问题,请高手指教!

问题描述 shell中的telnet的问题,请高手指教! 用shell自动实现一个telnet到目标,然后对目标中的一个目录进行tar打包,然后退出目标,理想中的代码: telnet IP 端口 tar -czvf ...... exit 但是telnet后,界面会切换到登录目标后的界面,所以本地shell中的以下tar命令和exit都执行不到,哪位高手能有好的办法实现这样的功能呢?python中有相应的功能,但是需求中不允许用python. 是否socket能实现这样的功能呢?但是我认为soc

iis7.0-IIS7 发布网站应用程序中的服务器错误问题 请高手指教

问题描述 IIS7 发布网站应用程序中的服务器错误问题 请高手指教 将我的MVC4程序发布到本机IIS7上报错: 确认2点: 1.发布的程序不存在问题,在服务器上可以正常访问,服务器系统是Windows2008 64位系统,我本地是win7 64位系统. 2.有将.net framework注册到IIS上 网上有讲到的 我基本都有设置修改到,但是问题依然在,求教... 解决方案 不一定,也许是数据库连接.文件系统权限等问题.你能看到那个页,说明asp.net已经在工作了. 解决方案二: 信息有点

delphi-Delphi:cxGrid关联的DataSet中如果有Lookup字段时,反应非常慢,请高手指教!

问题描述 Delphi:cxGrid关联的DataSet中如果有Lookup字段时,反应非常慢,请高手指教! cxGrid关联的DataSet中如果有Lookup字段,数据记录大约在5百行左右,打开速度就特别慢. 比如: 在数据库中, 销售出库单中只有客户编号,即FCltCode,没有客户名称: 客户档案表中有客户编号FCode,客户名称FName, 在DataSet1中建立FCltName字段,为Lookup类型,通过FCltCode与FCode关联,显示FCltName. 在这种情况下,软件

如何安装mysql?刚刚学习php不会用mysql,请高手指教

问题描述 如何安装mysql?刚刚学习php不会用mysql,请高手指教 如何安装mysql?刚刚学习php不会用mysql,请高手指教 解决方案 新手用集成环境,xmapp或phpnow 各关联自动完成 关于mysql的安装步骤参见: http://www.jb51.net/article/23876.htm 解决方案二: 安装的时候点击下一步.下一步,中间有几个环节需要注意: 1.端口号,默认为3306,可以根据实际情况修改. 2.用户名和密码,需要设置,在程序连接的时候需要. 3.字符集,

匹配对象的属性和函数-请高手指教下,C#里面正则表达式如何匹配对象的属性和嵌套的函数

问题描述 请高手指教下,C#里面正则表达式如何匹配对象的属性和嵌套的函数 'M.smith pass :'+stu.count(iif(sc.avg(sc.getscore()) >60,1,0))+teacher.class 需要匹配出 1.sc,getscore() 2.stu,count(iif(sc.avg(sc.getscore()) >60,1,0)) 3.teacher.class 不需要比配单引号里面的 M.smith 解决方案 1.sc{1},getscore(){1} 2.

请高手指教下,C#正则表达式如何匹配对象的属性和嵌套的函数

问题描述 请高手指教下,C#正则表达式如何匹配字符串里面的对象的属性和嵌套的函数,对象的函数.属性名不确定.字符串如下"'M.smithpass:'+stu.count(iif(sc.avg(sc.getscore())>60,1,0))+teacher.class"需要匹配出1.sc,getscore()2.stu,count(iif(sc.avg(sc.getscore())>60,1,0))3.teacher.class不需要比配单引号里面的M.smith 解决方案

安装问题-我下载的SQL Sever2008压缩包无法安装显示是这个,请高手指教

问题描述 我下载的SQL Sever2008压缩包无法安装显示是这个,请高手指教 操作类型"ExecuteWorkflowAction"对于WorkflowIdentity元素无效.唯一有效的操作类型是ExecuteWorkflowAction. 错误代码0x84B20001. 实在是新手,在这里截图都不会...