我有一个页面上有3个FreeTextBox控件。它们设置正确,我正常使用它们,直到我需要添加一个PostBack到服务器的DropDownList控件,但我很惊讶地看到OnSelectedIndexChanged
事件永远不会触发。如果我要使用按钮或其他服务器端控件进行发布,则会触发事件。经过大量调试后,我发现每次在DropDownList控件上选择不同的东西时都会抛出以下Javascript错误:
TypeError: FTB_API.MainContent_MainContent_FreeTextBox1 is undefined
错误似乎很简单; Firebug告诉我这个错误来自以下函数:
function WebForm_OnSubmit()
{
FTB_API['MainContent_MainContent_FreeTextBox1'].StoreHtml();FTB_API['MainContent_MainContent_FreeTextBox2'].StoreHtml();FTB_API['MainContent_MainContent_FreeTextBox3'].StoreHtml();
return true;
}
我尝试过几件事但没有成功。当我从我的页面中删除FreeTextBox控件时,我有成功的PostBacks。任何帮助,将不胜感激。 感谢。
编辑1 :这是我的一些标记
3 FreeTextBox设置如下:
<FTB:FreeTextBox ID="FreeTextBox3" JavaScriptLocation="ExternalFile" ButtonImagesLocation="ExternalFile" ToolbarImagesLocation="ExternalFile" runat="server" EnableHtmlMode="true" />
我的DropDownList:
<asp:DropDownList ID="DropDownList1" runat="server" AppendDataBoundItems="true" AutoPostBack="true" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
</asp:DropDownList>
答案 0 :(得分:1)
在标记页面中设置下拉列表的属性AutoPostBack = true。当您更改下拉元素并触发OnSelectedIndexChanged时,这将使帖子返回。
示例:
<asp:DropDownList id="drpList" runat="server" AutoPostBack="true" OnSelectedIndexChanged="event name" />
答案 1 :(得分:0)
我在这个帖子中找到了问题的答案:Hidden FreeTextBox bug on Firefox似乎由于某种原因,当控件不可见或被隐藏(我有标签)时,它的行为就是这样。答案是一种哈克,但它确实有效。谢谢你的回答。