Вызовить клиентское событие из другого клиентского события - PullRequest
0 голосов
/ 28 марта 2012

ASP.net (C #), VS2010, Win 7.

Новое в WebDev, так что это может быть простой синтаксис, но здесь все идет ...

Короче говоря, мне нужно вызвать обратную передачу на GridView, которая показывает вложения, которые я загружаю с помощью ASPxUploadControl. Я помещаю GridView в ASPxCallbackPanel и пытаюсь обновить мой GridView на странице после загрузки вложения с помощью ASPxCallbackPanel.PerformCallback ();

Вот элемент управления Upload, в его ClientSideEvent я пытаюсь вызвать clientSideEvent с помощью кнопки, показанной ниже. Просто пытался действительно нажать кнопку, но я пытался сделать это из-за кода, но это не сработало. Любая помощь будет оценена!

 <dxuc:ASPxUploadControl ID="FileUpload1" runat="server" 
        ClientInstanceName="uploader"  
        ShowAddRemoveButtons="False" 
        ShowUploadButton="True" 
        AddUploadButtonsHorizontalPosition="Center" 
        AddUploadButtonsVerticalPosition="Top" FileInputCount="1" 
        UploadMode="Advanced" 
        OnFileUploadComplete="UploadControl_FileUploadComplete"

        Size="30">
        <ClientSideEvents FileUploadComplete="function(s, e) { Button1.Click; }" />
        <%-- <AdvancedModeSettings EnableMultiSelect="True" />  "does not have public property named "advancedModeSettings" version is too old--%>
        <ValidationSettings
            AllowedFileExtensions=".doc,.pdf,.xls,.txt,.jpeg,.jpg,.gif,.png,.oft,.htm,.html,.mht,.rtf,.zip"
            MaxFileSize="5242880"
            FileDoesNotExistErrorText="This file can't be found." 
            GeneralErrorText="Custom file uploading fails due to an external error that doesn't relate to the ASPxUploadControl's functionality" 
            MaxFileSizeErrorText="Size of the uploaded file exceeds maximum file size"> 
            <ErrorStyle ForeColor="Red"/>

       </ValidationSettings> 
     </dxuc:ASPxUploadControl>

Вот GridView и кнопка, которую я сделал, которая успешно обновляет сетку.

<div>
        <dxe:ASPxButton ID="ASPxButton1" runat="server" ClientInstanceName="Button1" Text="Reload Panel" AutoPostBack="False">
            <ClientSideEvents Click="function(s, e) {ASPxCallbackPanel1.PerformCallback(); e.processOnServer = true;}" />
        </dxe:ASPxButton>
         <dx:ASPxCallbackPanel ID="ASPxCallbackPanel1" runat="server" 
             ClientInstanceName="ASPxCallbackPanel1" Width="492px" 
            Height="100%">
            <PanelCollection>
            <dx:PanelContent runat="server">   

                <asp:GridView ID="gvAttachment" SkinID="grid" runat="server" Width="98%"

                OnRowDataBound="AttachmentControl_OnRowDataBound"

                meta:resourcekey="gvAttachResource1"
                PagerSettings-FirstPageText="<%$ Resources:CommonControlText,FirstPageText %>"
                PagerSettings-LastPageText="<%$ Resources:CommonControlText,LastPageText %>"
                PagerSettings-PreviousPageText="<%$ Resources:CommonControlText,PreviousPageText %>"
                PagerSettings-NextPageText="<%$ Resources:CommonControlText,NextPageText %>" 
                   AutoGenerateColumns="False">
                <EmptyDataRowStyle CssClass="emptyData" />
                <EmptyDataTemplate>
                    <table class="usercontroldetail container_table">
                        <tr>
                            <td class="tdlayout">
                                <asp:Label ID="Localize1" runat="server">
                                    <%= Placeholder %>
                                </asp:Label>
                            </td>
                        </tr>
                    </table>
                </EmptyDataTemplate>
                <Columns>
                    <asp:BoundField DataField="AtchmtId" HeaderText="Attachment ID" 
                        visible = "false" meta:resourcekey="BoundFieldResource1">
                        <ItemStyle HorizontalAlign="Center" />
                    </asp:BoundField>
                    <asp:BoundField  DataField ="FileNm" HeaderText="File Name" />
                    <asp:BoundField DataField="UsrNm" HeaderText="Uploaded By" 
                         />
                    <asp:BoundField DataField="AtchmtDt" HeaderText="Date" 
                         />
                    <asp:BoundField DataField="FileSizeCnt" HeaderText="File Size" 
                         />
                    <asp:TemplateField AccessibleHeaderText="Actions" HeaderText="Actions">
                        <ItemTemplate>
                            <div style="text-align:center;">
                                <asp:LinkButton ID="btnDelete" Visible="False" runat="server"
                                    ToolTip="Delete Selected Attachment"
                                    OnClick="btnDelete_Click"
                                    Text="Delete" CausesValidation="True" DisableOnSubmit="True" Group="" 
                                    meta:resourcekey="btnDeleteResource1" />
                                <asp:Label ID="lblPipe" runat="server" Text="|" />
                                <asp:LinkButton ID="btnView" Visible="False" runat="server"
                                    ToolTip="View Selected Attachment"
                                    OnClick="btnView_Click"
                                    Text="View" CausesValidation="True" DisableOnSubmit="True" Group="" 
                                    meta:resourcekey="btnViewResource1" />
                            </div>
                        </ItemTemplate>
                        <ItemStyle Wrap="false" />
                    </asp:TemplateField>
                </Columns>

        <%--<PagerSettings FirstPageText="First" LastPageText="Last" NextPageText="Next &gt;" PreviousPageText="&lt; Previous"></PagerSettings>--%>

                <RowStyle CssClass="row_odd" />
                <AlternatingRowStyle CssClass="row_even" />
            </asp:GridView>
            </dx:PanelContent>
            </PanelCollection>
          </dx:ASPxCallbackPanel>

К вашему сведению: GridView получает новое вложение. Я просто не вижу его на странице, потому что UploadControl обновляется только сам.

Редактировать: понял, просто использовал метод OnClick (), как показано ниже. Derp. Забыл, что кнопка ASPx унаследовала все методы кнопок ASP. Но теперь мой первоначальный план сделать кнопку невидимой, похоже, сорвана. При вызове Button1.OnClick () со свойством Visible для Button установлено значение «false». это говорит, что Button1 не определен. Во всяком случае вокруг этого?

<ClientSideEvents FileUploadComplete="function(s, e) { Button1.OnClick(); }" />

1 Ответ

0 голосов
/ 29 марта 2012

Если я правильно понял, вы можете манипулировать поведением всех панелей обновления на странице с помощью свойства, называемого a updateMode (Условно, Всегда).Изменение одной панели обновления приведет к обновлению всех, если для всех установлен режим Always.

...