请教高手关于AutoPostBack的问题

GSDN 2002-08-09 05:31:12
我把一个控件(如TextBox,DropDownList)的AutoPostBack属性设成Ture之后,运行时出现“该对象不支持此属性或方法”的错误,请问有哪位高手解决过类似的问题?
...全文
83 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
GSDN 2002-08-12
  • 打赏
  • 举报
回复
对了,这里的斑竹是干什么的?
GSDN 2002-08-12
  • 打赏
  • 举报
回复
首先感谢zgh_ms([微软] 百变金刚)的帮助!
实际上我所说的错误是当我在客户端触发该控件的相关事件时产生的,此时光标停在了“MyForm.submit();”处,并提示“Microsoft JScript runtime error:Object doesn't support this property or method”,另外,我用的IE的版本是Ver6.0.2600。
同时,有一件事情必须说明的是,我在另外一个页面里面同样用了比如DropDownList控件的AutoPostBack为True的属性,结果没有出现任何问题,虽然出现问题的那一个页面结构稍微复杂一点,但我就该问题检查了很多遍诸如属性应用的细节,然仍未遂。
望高手助之。
GSDN 2002-08-12
  • 打赏
  • 举报
回复
微软专家在线吗?
mender 2002-08-11
  • 打赏
  • 举报
回复
重装系统及 vs.net

顺序:e版win2k系统,sp3,ie6,vs.net
zgh_ms 2002-08-11
  • 打赏
  • 举报
回复
感谢您使用微软产品。

首先,请您告诉我们这个错误信息出现在什么地方?是ASP.NET程序运行的时候出现在浏览器里面的么?如果是这样,可能是浏览器所支持的 DHTML 的问题导致的问题。

在HTML的FORM中,只有Button和Image Button能够产生POST原语从而提交Form.

在ASP.NET中,TEXTBOX在服务器端被包装为Server Control, 具有了在服务器端处理的Event, Proterties, Methods等内容。但是发送到客户端(浏览器)后,还是普通的HTML和DHTML.

当您需要使这些HTML元素具有POST功能的时候,你需要把AutoPostBack设置为TRUE. 实际上,ASP.NET自动的把一段JScipt插入了输出的DHTML语句中. 举个例子:

///////////////////// sample.aspx////////////////////////////////////
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
</HEAD>

<script runat=server>

void myFun(object sender, System.EventArgs e)
{
Label1.Text=TextBox1.Text;
}

</script>


<body>
<form id="WebForm3" method="post" runat="server">
<asp:TextBox id="TextBox1" runat="server" AutoPostBack="true" OnTextChanged="myFun"></asp:TextBox>
<asp:Label id="Label1" runat="server" Width="243px" Height="31px">Label</asp:Label>
</form>
</body>
</HTML>

当您用浏览器打开这个页面的时候,你可以在浏览器中看到这样的代码:

////////////////////////////////////////////////////////////////////////////////////////////////////////////
<body MS_POSITIONING="GridLayout">
<form name="WebForm3" method="post" action="Webform3.aspx" id="WebForm3">
<input type="hidden" name="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" value="" />
<input type="hidden" name="__VIEWSTATE" value="dDw5NzE2MzM5MzA7Oz6u4Pe0lxN8z0/oF1DQxmcM0k951A==" />

<script language="javascript">
<!--
function __doPostBack(eventTarget, eventArgument) {
var theform = document.WebForm3;
theform.__EVENTTARGET.value = eventTarget;
theform.__EVENTARGUMENT.value = eventArgument;
theform.submit();
}
// -->
</script>

<input name="TextBox1" type="text" id="TextBox1" onchange="__doPostBack('TextBox1','')" language="javascript" style="Z-INDEX: 101; LEFT: 238px; POSITION: absolute; TOP: 93px" />
<span id="Label1" style="height:31px;width:243px;Z-INDEX: 102; LEFT: 176px; POSITION: absolute; TOP: 189px">Label</span>
</form>
</body>
</HTML>

////////////////////////////////////////////////////////////////////////////////////////////////////

这个__doPostBack是由 System.Web.UI.Page.GetPostBackEventReference自动生成的。 如果您需要自己订做Server Control, 您需要使用它来产生POST操作,但是由于DHTML的问题,可能产生兼容性问题。根据经验,这个错误很可能是生成的DHTML产生的。建议您使用较新版本的浏览器来检查这个问题是否还存在。

希望上面的信息对您有所帮助。

-微软全球技术中心

本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利。具体事项可参见使用条款(http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。
为了为您创建更好的讨论环境,请参加我们的用户满意度调查(http://support.microsoft.com/directory/worldwide/zh-cn/community/survey.asp?key=(S,49854782))。
GSDN 2002-08-10
  • 打赏
  • 举报
回复
不会吧?到现在还没人知道?

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧