后台脚本 protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
showlist();
dlcolumn.Attributes.Add("onchange", "__doPostBack(this.value,'')");
}
} protected void dlcolumn_TextChanged(object sender, EventArgs e)
{
string id = Request.Form["__EVENTTARGET"]; if (id !=null)
{
columndomain.Text = id;
}
}
html代码 <input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
<input type="hidden" name="__LASTFOCUS" id="__LASTFOCUS" value="" />
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTgyNTM4MzgzOA9kFgICAw9kFgICAQ8QD2QWAh4Ib25jaGFuZ2UFG19fZG9Qb3N0QmFjayh0aGlzLnZhbHVlLCcnKRAVBwzkuIDnuqfnsbvliKsY5Lit5Zu95paw6Ze7ICAgICAgICAgICAgGS3ph43luobmlrDpl7sgICAgICAgICAgICAZLeWNl+WyuOaWsOmXuyAgICAgICAgICAgIBkt5rWZ5rGf5paw6Ze7ICAgICAgICAgICAgGOWFqOeQg+imgemXuyAgICAgICAgICAgIBkt576O5Zu95paw6Ze7ICAgICAgICAgICAgFQcBMAExATIBNgEzATQBNRQrAwdnZ2dnZ2dnFgFmZGTXwBDIAWhZbCfae49eLY0DcrRpuw==" />
</div><script type="text/javascript">
<!--
var theForm = document.forms['form1'];
if (!theForm) {
theForm = document.form1;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
// -->
</script><select name="dlcolumn" onchange="__doPostBack(this.value,'');setTimeout('__doPostBack(\'dlcolumn\',\'\')', 0)" id="dlcolumn" style="width:153px;">
<option selected="selected" value="0">一级类别</option>
<option value="1">中国新闻 </option>
<option value="2">-重庆新闻 </option>
<option value="6">-南岸新闻 </option>
<option value="3">-浙江新闻 </option>
<option value="4">全球要闻 </option>
<option value="5">-美国新闻 </option></select>
问题是 有时候控件 columndomain显示的值是数字 正常的 有时侯它显示的值是 dlcolumn 郁闷 请大家帮我解决啊
{
if (!IsPostBack)
{
showlist();
dlcolumn.Attributes.Add("onchange", "__doPostBack(this.value,'')");
}
} protected void dlcolumn_TextChanged(object sender, EventArgs e)
{
string id = Request.Form["__EVENTTARGET"]; if (id !=null)
{
columndomain.Text = id;
}
}
html代码 <input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
<input type="hidden" name="__LASTFOCUS" id="__LASTFOCUS" value="" />
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTgyNTM4MzgzOA9kFgICAw9kFgICAQ8QD2QWAh4Ib25jaGFuZ2UFG19fZG9Qb3N0QmFjayh0aGlzLnZhbHVlLCcnKRAVBwzkuIDnuqfnsbvliKsY5Lit5Zu95paw6Ze7ICAgICAgICAgICAgGS3ph43luobmlrDpl7sgICAgICAgICAgICAZLeWNl+WyuOaWsOmXuyAgICAgICAgICAgIBkt5rWZ5rGf5paw6Ze7ICAgICAgICAgICAgGOWFqOeQg+imgemXuyAgICAgICAgICAgIBkt576O5Zu95paw6Ze7ICAgICAgICAgICAgFQcBMAExATIBNgEzATQBNRQrAwdnZ2dnZ2dnFgFmZGTXwBDIAWhZbCfae49eLY0DcrRpuw==" />
</div><script type="text/javascript">
<!--
var theForm = document.forms['form1'];
if (!theForm) {
theForm = document.form1;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
// -->
</script><select name="dlcolumn" onchange="__doPostBack(this.value,'');setTimeout('__doPostBack(\'dlcolumn\',\'\')', 0)" id="dlcolumn" style="width:153px;">
<option selected="selected" value="0">一级类别</option>
<option value="1">中国新闻 </option>
<option value="2">-重庆新闻 </option>
<option value="6">-南岸新闻 </option>
<option value="3">-浙江新闻 </option>
<option value="4">全球要闻 </option>
<option value="5">-美国新闻 </option></select>
问题是 有时候控件 columndomain显示的值是数字 正常的 有时侯它显示的值是 dlcolumn 郁闷 请大家帮我解决啊
解决方案 »
- 用Request.SaveAs接收保存二进制,大字节的接收不到,如何判断一下?
- ASP.NET是否要掌握C#
- 求一个基类(父类)对象和派生类对象的显式转换
- 大家好,做这么长时间,我还不清楚asp.net的分页原理,请教大家,谢谢
- 问一下.有没有不需要设置iis的URL重写功能的实现
- 小问题
- 请教ASP.NET演示文本代码怎么写
- select top 10 aa,bb,cc form name 为什么只显示5条呢?符合条件的记录不止10条啊,怎么回事
- zyqaspmenu已全部完成。需要的人....
- 咨询同时连接多个sql服务器的问题
- 关于音乐盒播放列表生成的安全问题!
- 捕捉到异常后,一般你都做哪些处理工作??
看不懂你的代码意图 ....
2.
ASP.NET 内置的回发函数 __doPostBack(eventTarget, eventArgument) 的第一个参数 eventTarget 应该表示的是客户端 html 元素的 name 属性,而不是随意的什么 value 之类,这是内部机制!故,假如你准备手动注册回发时间,应该是dlcolumn.Attributes.Add("onchange", "__doPostBack(this.name,'')");3.
当然,这种方式会导致安全漏洞,你最好使用 // 1.x
Page.GetClientScriptPostBackEventReference(...)
// 2.0
Page.ClientScript.GetClientScriptPostBackEventReference(...)方法注册客户端回发事件
4. 我猜想你的 select 已经加上了 runat=server 了,变成了服务器事件,且注册了 TextChanged 事件那么你已经无需手动的注册一次了你没发现onchange="__doPostBack(this.value,'');setTimeout('__doPostBack(\'dlcolumn\',\'\')', 0)"中出现了,两次 doPostBack 调用嘛?获取选中值,请使用 dlcolumn.Value 或者 Request.Form[dlcolumn.UniqueID]5.
已经有 DropDownList 控件封装了此功能,请选用 DropDownList6.
不要什么事情都想当然去处理,请理解之 ....