1

我在更新面板控件下更新表单元素外观时遇到问题。
我使用Uniform JQuery Plugin来塑造表单控件,例如 DropDown。它在 ASP.net 表单中运行良好,但是当用户选择 dropDownList 项目时,我使用更新面板生成 CheckboxList 项目。
下图显示了表单外观:
替代文字

但是当我从列表中选择一个类别以更新 UpdatePanel 模板并更新 CheckBoxes 时,统一样式将从位于更新面板内的控件中删除:
替代文字

我在表格上方调用统一函数:

            <script type="text/javascript">
                $(function() {
                    $("input, textarea, select, button").uniform();
                });
            </script>

和更新面板标记:

    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
            <p>
                انتخاب دسته:&nbsp;<myCtrl:CategoryDDL AutoPostback="True" EmptyItemText="همه‌ی دسته‌ها&quot;
                    ID="CategoryDDL" OnSelectedIndexChanged="CategoryDDL_SelectedIndexChanged" runat="server"
                    SelectedCategoryId="0" />
            </p>
            <p>
                برند محصولات<br />
                <asp:CheckBoxList ID="CheckBoxListBrands" runat="server">
                </asp:CheckBoxList>
            </p>
        </ContentTemplate>
        <Triggers>
            <asp:AsyncPostBackTrigger ControlID="CategoryDDL" />
        </Triggers>
    </asp:UpdatePanel>



知道任何人都可以帮我纠正这个错误吗???有什么方法可以防止更新面板控件样式被删除?

4

2 回答 2

1

您不能阻止它删除样式(元素被完全替换),但您可以通过在代码中运行一次来​​重新应用它:

Sys.WebForms.PageRequestManager.getInstance().add_endRequest(function() {
  $("#updatePanelDiv :input").uniform();
});

endRequest这样做是附加一个事件处理程序以在 UpdatePanel事件触发时再次运行插件(每次它返回新内容/元素时)。

如评论中所述,将 UpdatePanel 包装在包装器中会将插件限制在区域。

于 2010-08-19T21:55:50.540 回答
0

改变这个方法

$(function() {
$("input, textarea, select, button").uniform();
});

function pageLoad(){
 $("input, textarea, select, button").uniform();
}

这就对了..

于 2013-03-12T05:40:21.320 回答