2013-04-26 1 views
1

popup editform templete를 사용하여 추가/업데이트 옵션이있는 telerik 그리드를 구현했습니다. 모든 일은 아약스없이 잘 작동하고 있으며, 아약스 팝업 양식을 활성화하면 이벤트가 제대로 실행되지 않습니다. CommandName을 정의했고 서버 측에서 ItemCommand 이벤트를 구현했습니다. 폼의 모든 이벤트에 중단 점을 적용한 다음 팝업 버튼을 클릭 한 후에 폼로드 메서드가 호출되고 아무 것도 발생하지 않습니다. 다음 도와주세요 나의 클라이언트 종료 코드입니다Telerik 그리드 EditForm 팝업 이벤트 문제

<telerik:RadGrid ID="gridMain" runat="server" EnableEmbeddedSkins="False" Skin="MpoGrayGrid" AutoGenerateColumns="False" CellSpacing="0" GridLines="None" OnItemDataBound="gridMain_ItemDataBound" OnNeedDataSource="gridMain_NeedDataSource" OnItemCommand="gridMain_ItemCommand"> 
          <MasterTableView EditMode="PopUp" CommandItemDisplay="Top" DataKeyNames="EEHireTermID"> 
          <CommandItemSettings ExportToPdfText="Export to PDF"></CommandItemSettings> 
          <RowIndicatorColumn FilterControlAltText="Filter RowIndicator column"></RowIndicatorColumn> 
          <ExpandCollapseColumn Visible="True" FilterControlAltText="Filter ExpandColumn column" Created="True"></ExpandCollapseColumn> 
           <Columns> 
            <telerik:GridTemplateColumn HeaderText="Employee"> 
             <ItemTemplate> 
              <asp:Label runat="server" ID="lblName"></asp:Label> 
             </ItemTemplate> 
            </telerik:GridTemplateColumn> 
            <telerik:GridTemplateColumn HeaderText="Type"> 
             <ItemTemplate> 
              <asp:Label runat="server" ID="lblType"></asp:Label> 
             </ItemTemplate> 
            </telerik:GridTemplateColumn> 
            <telerik:GridTemplateColumn HeaderText="ActionDate"> 
             <ItemTemplate> 
              <asp:Label runat="server" ID="lblActionDate"></asp:Label> 
             </ItemTemplate> 
            </telerik:GridTemplateColumn> 
            <telerik:GridTemplateColumn HeaderText="Entered Date"> 
             <ItemTemplate> 
              <asp:Label runat="server" ID="lblEnteredDate"></asp:Label> 
             </ItemTemplate> 
            </telerik:GridTemplateColumn> 
            <telerik:GridTemplateColumn HeaderText="Entered By"> 
             <ItemTemplate> 
              <asp:Label runat="server" ID="lblEnteredBy"></asp:Label> 
             </ItemTemplate> 
            </telerik:GridTemplateColumn> 
            <telerik:GridTemplateColumn HeaderText="Reason For Termination"> 
             <ItemTemplate> 
              <asp:Label runat="server" ID="lblTermReason"></asp:Label> 
             </ItemTemplate> 
            </telerik:GridTemplateColumn> 
            <telerik:GridTemplateColumn HeaderText="Memo"> 
             <ItemTemplate> 
              <asp:Label runat="server" ID="lblMemo"></asp:Label> 
             </ItemTemplate> 
            </telerik:GridTemplateColumn> 
            <telerik:GridTemplateColumn HeaderText="Action"> 
             <ItemTemplate> 
              <asp:LinkButton runat="server" ID="btnEdit" CausesValidation="False" Text="Edit" CssClass="Link2" CommandArgument='<%# DataBinder.Eval(Container, "RowIndex") %>' CommandName="Edit"></asp:LinkButton>&nbsp;|&nbsp; 
             <asp:LinkButton runat="server" ID="btnDelete" CausesValidation="False" Text="Delete" CssClass="Link2" CommandArgument='<%# DataBinder.Eval(Container, "RowIndex") %>' CommandName="Delete"></asp:LinkButton> 
             </ItemTemplate> 
            </telerik:GridTemplateColumn> 
           </Columns> 
           <EditFormSettings InsertCaption="Add Hire/Termination Dates" CaptionFormatString="Add Hire/Termination Dates" 
            CaptionDataField="Id" EditFormType="Template" PopUpSettings-Modal="true" PopUpSettings-Width="663"> 
<EditColumn InsertImageUrl="Update.gif" UpdateImageUrl="Update.gif" CancelImageUrl="Cancel.gif" FilterControlAltText="Filter EditCommandColumn column"></EditColumn> 
            <FormTemplate> 
             <table id="tblEdit" runat="server" width="663" style="margin: 24px; border-radius: 20px;" cellpadding="6" > 

              <tr> 
               <td colspan="1" class="BodyText" width="31%" >Employee: </td> 
               <td colspan="1" width="69%"> 
                <asp:TextBox runat="server" CssClass="TextField1" ID="txtName" ReadOnly="True"></asp:TextBox></td> 
              </tr> 
              <tr> 
               <td colspan="1" class="BodyText" width="31%">Type:</td> 
               <td colspan="1" width="69%"> 
                <asp:DropDownList runat="server" ID="ddlType" CssClass="DropDown1" onchange="changeType(this)"> 
                 <asp:ListItem Value=""></asp:ListItem> 
                 <asp:ListItem Value="H">Hire</asp:ListItem> 
                 <asp:ListItem Value="T">Termination</asp:ListItem> 
                 <asp:ListItem Value="E">PEO</asp:ListItem> 
                 <asp:ListItem Value="N">PEO Termination</asp:ListItem> 
                </asp:DropDownList> 
                &nbsp;<asp:RequiredFieldValidator ID="rfvReq1" runat="server" CssClass="Heading1" ControlToValidate="ddlType" ErrorMessage="* Required"></asp:RequiredFieldValidator></td> 
              </tr> 
              <tr> 
               <td colspan="1" class="BodyText" width="31%">Action/EffectiveDate:</td> 
               <td colspan="1" width="69%"> 
                <telerik:RadDatePicker runat="server" ID="rdpActionDate"></telerik:RadDatePicker> 
                &nbsp;<asp:RequiredFieldValidator ID="rfvReq2" runat="server" CssClass="Heading1" ControlToValidate="rdpActionDate" ErrorMessage="* Required"></asp:RequiredFieldValidator> 
               </td> 
              </tr> 
              <tr> 
               <td colspan="1" class="BodyText" width="31%">Reason For Termination:</td> 
               <td colspan="1" width="69%"> 
                <asp:DropDownList runat="server" ID="ddlTermReason" CssClass="DropDown1"> 
                </asp:DropDownList>&nbsp;<asp:RequiredFieldValidator ID="rfvReq3" CssClass="Heading1" runat="server" ControlToValidate="ddlTermReason" ErrorMessage="* Required"></asp:RequiredFieldValidator> 
               </td> 
              </tr> 
              <tr> 
               <td class="BodyText" width="31%">Memo:</td> 
               <td width="69%"> 
                <asp:TextBox runat="server" ID="txtMemo" TextMode="MultiLine" Height="86px" Width="346px"></asp:TextBox> 
               </td> 
              </tr> 
              <tr> 
               <td colspan="2" align="center"> 
                <asp:Button runat="server" ID="txtSave" CommandName="Update" CssClass="Buttons" Text="Save" />&nbsp; 
            <asp:LinkButton runat="server" ID="btnCancel" CssClass="Link_Cancel" Text="Cancel" CommandName="Cancel" CausesValidation="False"></asp:LinkButton> 
               </td> 
              </tr> 
             </table> 
            </FormTemplate> 

          <PopUpSettings Modal="True" Width="663px" > 

          </PopUpSettings> 
           </EditFormSettings> 

          <PagerStyle PageSizeControlType="RadComboBox"></PagerStyle> 
           <CommandItemTemplate> 
            <table width="100%" cellpadding="10"> 
             <tr> 
              <td align="left"> 
               <asp:Button runat="server" ID="btnAdd" CommandName="InitInsert" Text="Add New Record" CssClass="Buttons" /></td> 
              <td align="right"> 
               <asp:LinkButton runat="server" CommandName="Export" ID="lbtnExport" Text="Export"><img src="../images/excel.jpg"/> Export</asp:LinkButton></td> 
             </tr> 
            </table> 
           </CommandItemTemplate> 
          </MasterTableView> 
          <ClientSettings> 
           <ClientEvents OnPopUpShowing="PopUpShowing" /> 
           </ClientSettings> 

            <PagerStyle PageSizeControlType="RadComboBox"></PagerStyle> 
            <FilterMenu EnableImageSprites="False" EnableEmbeddedSkins="False"></FilterMenu> 
            <HeaderContextMenu EnableEmbeddedSkins="False"></HeaderContextMenu> 
         </telerik:RadGrid> 

답변

0

문제를 해결하기 위해 며칠간 노력한 결과 문제의 원인을 발견했습니다. System.Compression을 사용하여 뷰 상태를 압축하고 압축을 해제했습니다. Telerik이 문제를 일으킨 이유는 그것이 작동하지 않는 이유입니다. 내 BasePage에서이 코드를 주석 처리하면 제대로 작동하기 시작했습니다.

+1

을 제외하고 이벤트가 발생하지 않습니다. Telerik 컨트롤을 사용하는 경우 Telerik RadCompression 모듈을 사용하여 viewstate를 압축해야합니다. –

1

내가 구성 AutoEventWireup="true"와 함께 새로운 웹 양식에 코드를 복사 한 나는 3 개 이벤트 화재보고 있어요 : 나는 당신의 편집 버튼을 클릭하면하여 ItemDataBound, NeedDataSource 및 ItemCommand을 .

AutoEventWireup을 사용하지 않으려면 Grid의 이벤트를 CreateChildControls의 이벤트 핸들러에 적절하게 연결하거나 페이지 수명주기의 초기에 연결해야합니다.

+0

그리드 클릭은 올바르게 실행되지만 팝업 화면에는 문제가 있습니다. 팝업 화면에서 저장/취소를 클릭하면 양식로드 – Tanveer