關於DropDownList的控制项"XXX"必须置于runat=server的表单标记之中.

wwwiii520 2010-09-02 03:26:15
用JS刷新控件Content

服務器發送的Content
 public static string RenderControl(Control control)
{
StringWriter writer1 = new StringWriter(CultureInfo.InvariantCulture);
HtmlTextWriter writer2 = new HtmlTextWriter(writer1);

control.RenderControl(writer2);
writer2.Flush();
writer2.Close();

return writer1.ToString();
}




function RefreshNumberList()
{
<%= ClientID %>.RefreshNumberList('<%= ClientID %>', document.getElementById('<%= kindDropDownList.ClientID %>').value,RefreshNumberListCallBack);
}
function RefreshNumberListCallBack(result)
{
if(result.error != null && result.error != "")
{
alert(result.error);
return false;
}
document.getElementById('numbercontrol').innerHTML = result.value.NumberContent;
return true;
}


服务器的RefreshNumberList()方法返回Content
[AjaxMethod]
public BorrowResult RefreshNumberList(string key)
{
numberDropDownList.DataSource = null;
if (Setting.Instance.NumberList[key] is Hashtable)
{
numberDropDownList.DataSource = ((Hashtable)Setting.Instance.NumberList[key]);
numberDropDownList.DataTextField = "value";
numberDropDownList.DataValueField = "key";
numberDropDownList.DataBind();
}
BorrowResult result = new BorrowResult();
result.NumberContent = RenderControl(numberDropDownList);
return result;
}


然后子页面
 
<asp:Content ContentPlaceHolderID="bcr" runat="Server">
.....
.....
<div id="numbercontrol">
<ctrl:ValuedDropDownList ID="numberDropDownList" runat="server" CssClass="InputField SmallWidth" />
</div>

.....
.....

母版页是一个Master页
<body>
<form id="aspnetForm" runat="server">
<asp:ContentPlaceHolder ID="bcr" runat="server" />
</form>
</body>


为什么总是有错误咧?说
ValuedDropDownList的控制项"XXX"必须置于runat=server的表单标记之中.

在网上查了下说控件一定要放在<form runat="server"></form>的标记中  
可我母版页有这个标记啊!!!!
...全文
128 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
hejunheng 2010-09-02
  • 打赏
  • 举报
回复
不要用母板页
wwwiii520 2010-09-02
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 kongwei521 的回复:]
子页面是引用母版页面了吗? http://www.west263.com/www/info/41021-1.htm

<asp:Content ContentPlaceHolderID="bcr" runat="Server"> ..... .....
<form method="post" >// <form id="form2" runat="server">
<div id="n……
[/Quote]

子页面是嵌套在 Master页中的.
wwwiii520 2010-09-02
  • 打赏
  • 举报
回复
有啊! 这是Master页.

<body>
<form id="aspnetForm" runat="server">
<asp:ContentPlaceHolder ID="bcr" runat="server" />
</form>
</body>
蝶恋花雨 2010-09-02
  • 打赏
  • 举报
回复
子页面是引用母版页面了吗? http://www.west263.com/www/info/41021-1.htm

<asp:Content ContentPlaceHolderID="bcr" runat="Server"> ..... .....
<form method="post" >// <form id="form2" runat="server">
<div id="numbercontrol"> <ctrl:ValuedDropDownList ID="numberDropDownList" runat="server" CssClass="InputField SmallWidth" /> </div></form>

这样试试
  • 打赏
  • 举报
回复
不大清楚、
gongsun 2010-09-02
  • 打赏
  • 举报
回复
你的 子页面 有没有 引用 你的母页版啊!!!!!!!!!
蝶恋花雨 2010-09-02
  • 打赏
  • 举报
回复
有没有form runat="server" id="form1"
porschev 2010-09-02
  • 打赏
  • 举报
回复
你确定母版页中有表单》?
wwwiii520 2010-09-02
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 changjiangzhibin 的回复:]
试试将该控件是否客户端的属性设为True
[/Quote]
你是说  EnableViewState="true" 吧!
  没用
wwwiii520 2010-09-02
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 msy0850 的回复:]
看是否有多个form套用
[/Quote]
多了个? 不会吧!
冒似一个页面有两个form运行时会报错
changjiangzhibin 2010-09-02
  • 打赏
  • 举报
回复
试试将该控件是否客户端的属性设为True
msy0850 2010-09-02
  • 打赏
  • 举报
回复
看是否有多个form套用
wwwiii520 2010-09-02
  • 打赏
  • 举报
回复
我试了下 asp:Panel和asp:Repeater 没有问题.

111,094

社区成员

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

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

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