gridview 中的验证器在 jquery cookie 中创建

Posted

技术标签:

【中文标题】gridview 中的验证器在 jquery cookie 中创建【英文标题】:validator in gridview create in jquery cookie 【发布时间】:2016-01-08 10:44:45 【问题描述】:

在我的网站中,我有中继器,里面有一个 gridview。中继器项目位于可以展开或折叠的隐藏面板中。为了记住在页面重新加载时打开了哪些面板,我使用 jquery cookie。一切正常。 对于gridview中的控件,我想使用例如asp CompareValidator。如果我在 Firefox 中这样做,我会看到错误 TypeError: $.cookie 不是函数

在我使用的项目中: jquery.cookie.js 1.4.1 和 jquery-2.1.4.js。

这是我的 js 代码:

var expandCookieKey = "cookie_Expand";

    function saveButtonMouseOver() 
        this.focus();
    

    $(function () 
        $gridArray = $('.expandableGrid');
        checkCookie(expandCookieKey);

    );


    function createExpandCookie(aiCookieKey, aiCookieValue) 
        if ($.cookie(aiCookieKey) != null)
            $.removeCookie(aiCookieKey);

        $.cookie(aiCookieKey, aiCookieValue);
    

    function checkCookie(aiCookieKey) 
        if ($.cookie(aiCookieKey) != null) 
            var index = $.cookie(aiCookieKey);
            $($gridArray[index]).slideDown('slow');
        
    

    function expandContainer(aiClickedElement) 

        var $thisExpand = $(aiClickedElement).parent('.expandContainer').children('div.expandableGrid');
        $gridArray
            .filter(':visible')
            .not($thisExpand)
            .slideUp('slow');
        $thisExpand.is(":visible") ? $thisExpand.slideUp('slow') : $thisExpand.slideDown('slow');
        createExpandCookie(expandCookieKey, $gridArray.index($thisExpand));
    

这是我的 aspx 网站的一部分。

    <asp:Content ContentPlaceHolderID="HeadContent" runat="server">
    <style type="text/css">
        .version-hidden 
            display: none;
            height: auto;
            padding: 10px;
        

        .editTapete 
            padding-top: 10px;
            padding-right: 10px;
        

        .header 
            width: 100%;
            height: 50px;
            padding: 10px;
            margin-bottom: 15px;
            font-size: 24px;
            background: #f1f1f1;
            color: #000;
            font-weight: bold;
            border: 1px solid #dbdbdb;
        

        .header .description
            margin-top: 7px;
            float: right;
            *right: 0px;
            font-size: 12px;
            font-weight: 300;
        

        .expandContainer 
            width: 100%;
            display: block;
            *min-height: 30px;
            color: #fff;
            padding: 5px 10px;
            background: #337ab7;
            overflow: auto;
            border: 1px solid #dbdbdb;
        

        .label 
            font-size: 16px;
            padding-left: 10px;
        

        .expandableGrid 
            display: none;
            height: auto;
            padding: 5px;
            *margin: 15px;
            color: #337ab7;
            overflow: auto;
        
    </style>
</asp:Content>
<asp:Content ContentPlaceHolderID="MainContent" runat="server">

    <div class="row"></div>
    <div class="row">
        <div class="col-lg-1"></div>
        <div class="col-lg-11">
            <div class="input-group custom-panel-item" style="margin-bottom: 30px; width: 100%;" >
                <div class="input-group-addon">
                    <span class="glyphicon glyphicon-list"></span>
                </div>
                <input type="text" class="form-control textbox-cursor" style="font-weight: 600; font-size: 14px;" id="invLabel" runat="server" disabled />
            </div>

            <asp:Repeater ID="repeater_ProjectInvestSections" SelectMethod="GetSectionsToUA" runat="server" ItemType="AWS_PV.nsPocos.nsTapete.MainGroup" OnItemCommand="repeater_ProjectInvestSections_ItemCommand">
                <SeparatorTemplate>
                    <span style="height: 5px; background: #fff; width: 100%; display: block; position: relative;"></span>
                </SeparatorTemplate>
                <ItemTemplate>
                    <div class="expandContainer">
                        <span class="glyphicon glyphicon-chevron-down" style="cursor: pointer; padding-top: 10px;" onclick="expandContainer(this);"></span> 
                        <span class="label textbox-cursor" style="display: inline-block; position: relative; height: 40px; padding-top: 10px;"><%# Item.Description %></span>
                        <asp:Label ID="label_HiddenSectionId" Text="<%# Item.ID %>" runat="server" Visible="false" />
                        <span class="btn" style="position:absolute; right:20px">
                        <asp:LinkButton runat="server" ID="editSection" CssClass="btn btn-default" CommandName="Edit"  >
                                <i aria-hidden="true" class="glyphicon glyphicon-pencil"></i> 
                            </asp:LinkButton>
                        </span>
                        <span class="btn" style="position:absolute; right:80px">
                        <asp:LinkButton runat="server" ID="saveSection" CssClass="btn btn-default" CommandName="Save" >
                                <i aria-hidden="true" class="glyphicon glyphicon-floppy-disk"></i> 
                            </asp:LinkButton>
                        </span>
                    <div class="expandableGrid">
                        <asp:GridView ID="Gridview_ProjectInvest" runat="server" DataSourceID="dataSource_InvestCostsToSection" AutoGenerateColumns="false" 
                            GridLines="Vertical" CellPadding="2" BackColor="White"
                            HeaderStyle-HorizontalAlign="Left" ItemStyle-HorizontalAlign="Left"
                            ItemType="AWS_PV.nsPocos.ProjectInvestObj"
                            CssClass="table table-bordered table-condensed" 
                            OnRowDataBound="Gridview_ProjectInvest_RowDataBound" ShowFooter="true" DataKeyNames="InvestID,fachgrpRef">
                        <Columns>
                            <asp:TemplateField HeaderText="Benennung" >
                                <ItemTemplate>
                                    <asp:Label ID="Beschreibung" runat="server" Text='<%# Item.Beschreibung %>' />
                                    <asp:TextBox ID="editBeschreibung" runat="server" Text='<%#Eval("Beschreibung") %>' MaxLength="255"  Width="530" Visible="false" BackColor="Yellow"/>
<                                    <asp:RequiredFieldValidator ID="valBeschreibung" runat="server" ControlToValidate="editBeschreibung"
                                        Display="Dynamic" ErrorMessage="Eine Beschreibung ist notwendig." ForeColor="Red" SetFocusOnError="True"
                                        ValidationGroup="editGrp">Eine Beschreibung ist notwendig.
                                    </asp:RequiredFieldValidator>
                                </ItemTemplate>
                            </asp:TemplateField>
                        </Columns>
                        </asp:GridView>
                        <asp:ObjectDataSource ID="dataSource_InvestCostsToSection" runat="server" SelectMethod="Gridview_GetData" TypeName="Subpages.EditProject.Project" DataObjectTypeName="SP_AWS_GetInvest">
                            <SelectParameters>
                                <asp:ControlParameter ControlID="label_HiddenSectionId" Name="aiSectionId" Type="Int32" />
                            </SelectParameters>
                        </asp:ObjectDataSource>
                        </div>
                    </div>
                </ItemTemplate>
            </asp:Repeater>
        </div>
     </div>     

怎么了? 任何帮助将不胜感激。

【问题讨论】:

请说明您是如何调用方法checkCookie() 您的帖子还不清楚,还请说明您在哪个阶段收到Object doesn’t support property or method cookie 这个错误。 我已经更新了我的问题并发布了我使用的所有 javascript。页面加载时出现错误。 【参考方案1】:

我的问题很不清楚。但现在我找到了解决办法。

Answer in old question

您必须像这样更改您的 web.config:

<appSettings>
<add key="ValidationSettings:UnobtrusiveValidationMode" value="None"/> </appSettings>

【讨论】:

虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。

以上是关于gridview 中的验证器在 jquery cookie 中创建的主要内容,如果未能解决你的问题,请参考以下文章

如何在不同 jquery ui 选项卡中的 gridviews 中使用 jquery Datatable 插件?

Gridview中的JQuery如何在文本框在同一行更改时检查复选框

从jQuery中的GridView获取Check of True / False

如何验证 jquery 对象中的每个值

gridview 验证中的文本框

如何使用 JQuery 取消选中 GridView 中的所有单选按钮?