1

コードビハインドで.show()を使用すると、modalpopupextenderを表示するのに問題があります。

リンクボタンを使用すると、モーダルポップアップは期待どおりに機能しますが、コードビハインドから呼び出すと、ポップアップはモーダルではなく、テキストボックスにデータを入力したり、他のボタンをクリックしたりできます。リンクボタンは通常、 style = "display:none;"。

クリックされたボタンに応じてメッセージを表示するようにポップアップを設定しようとしています。

以下のコードをコピーしました(スペースを節約するために余分なテーブルの詳細を削除しました)。

<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="FrmTransaction.aspx.cs" Inherits="Cloud9.FrmTransaction" %>
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">
</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
    <ajax:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server" />

    <div runat="server" id="PageDetailDiv" class="pagedetail">
        <asp:ValidationSummary runat="server" />

        <asp:Table runat="server" HorizontalAlign="Center" Width="80%">
            <asp:TableRow runat="server">
                <asp:TableCell runat="server">
                    <asp:Label runat="server" ID="lblMsg" CssClass="Msg" EnableViewState="false" />
                </asp:TableCell>
            </asp:TableRow>
            <asp:TableRow ID="trSearch" runat="server">
                <asp:TableCell runat="server">
                    <div align="left">
                        <asp:Label CssClass="formCapture" Text='Field' runat="server" ID="lblSearchField" AssociatedControlID="tbSearchField" />
                        <obout:OboutTextBox FolderStyle="Styles/Obout/TextBox" runat="server" ID="tbSearchField" Width="300px" />
                        <br />
                        <asp:Label CssClass="formCapture" Text='Lookup' runat="server" ID="lblSearch" AssociatedControlID="tbSearch" />
                        <obout:OboutTextBox FolderStyle="Styles/Obout/TextBox" runat="server" ID="tbSearch" Width="300px" />
                        <asp:Button ID="SearchButton" runat="server" Text="Find" CommandName="Search" CausesValidation="False"
                            OnCommand="btnClick_Search" CssClass="btnDefault" onMouseOver="this.CssClassName='btnDefaultHover'" onMouseOut="this.CssClassName='btnDefault'" />
                    </div>
                </asp:TableCell>
            </asp:TableRow>
        </asp:Table>

        <asp:Table runat="server" HorizontalAlign="Center" Width="80%">
            <asp:TableRow ID="trButton" runat="server">
                <asp:TableCell>
                    <div align="center">
                        <asp:Button id="btnInsert" runat="server" Text="Insert" CommandName="Insert" CausesValidation="True" OnCommand="btnClick_Insert"
                            CssClass="btnDefault" onMouseOver="this.CssClassName='btnDefaultHover'" onMouseOut="this.CssClassName='btnDefault'"/>
                        &nbsp; 
                        <asp:Button id="btnUpdate" runat="server" Text="Update" CommandName="Update" CausesValidation="True" OnCommand="btnClick_Update"
                            CssClass="btnDefault" onMouseOver="this.CssClassName='btnDefaultHover'" onMouseOut="this.CssClassName='btnDefault'"/>
                        &nbsp; 
                        <asp:Button id="btnDelete" runat="server" Text="Delete" CommandName="Delete" CausesValidation="False" OnCommand="btnClick_Delete"
                            CssClass="btnDefault" onMouseOver="this.CssClassName='btnDefaultHover'" onMouseOut="this.CssClassName='btnDefault'"/>
                        &nbsp; 
                        <asp:Button id="btnCancel" runat="server" Text="Cancel" CommandName="Cancel" CausesValidation="False" OnCommand="btnClick_Cancel" 
                            CssClass="btnDefault" onMouseOver="this.CssClassName='btnDefaultHover'" onMouseOut="this.CssClassName='btnDefault'"/>
                    </div>
                </asp:TableCell>
            </asp:TableRow>
        </asp:Table>

        <asp:Panel CssClass="modalPopup" runat="server" ID="pnlMessage" >
            <asp:Label runat="server" ID = "lblMessg" />
            <br />
            <asp:Button id="btnOKMessage" Text="OK!" Runat="server" UseSubmitBehavior="false" CausesValidation="false" OnCommand="btnClick_Cancel"
                class="btnPgeSmall" onMouseOver="this.className='btnPgeSmallHover'" onMouseOut="this.className='btnPgeSmall'" />
        </asp:Panel>

        <asp:LinkButton ID="UsedByModal" Text="here" runat="server" />
        <ajax:ModalPopupExtender ID="ModalPopupExtender1" runat="server" PopupControlID="pnlMessage" TargetControlID="UsedByModal"
            BackgroundCssClass="modalBackground" CancelControlID="btnOKMessage" OkControlID="btnOKMessage" />
    </div>
</asp:Content>

CSSの関連部分....。

.modalBackground {
    background-color:Gray;
    filter:alpha(opacityp);
    opacity:0.7;
}

.modalPopup {
    background-color:#F6F6EA;
    border-width:3px;
    border-style:solid;
    border-color:#c0c0c0;
    padding:3px;
    width:50%;
}

私は過去3日間答えを探していましたが、今は完全に行き詰まっています。任意のヘルプやガイダンスをいただければ幸いです。

4

2 に答える 2

0

このクラスは私にとって正しい結果を生み出しています。ニーズに合わせて変更できます。

.modalBackground
{
    background-color: #000000;
    opacity: .15;
    filter: alpha(opacity=15);
    -moz-opacity: .15;
}
于 2012-07-03T05:42:05.670 に答える
0

それを見つけた!

問題を見つけるために、すべてのコントロールを削除してページを書き直し、1xTextbox と 1xButton と asp:Modalpopupextender を含む単純なページから始めて、すべてが期待どおりに機能することを確認しました。その後、途中でページのテストにコントロール/機能を追加し始めました。簡単に言えば、問題は asp:ValidationSummary でした。

次に、ValidationSummary コントロールを使用せずに (上に表示されているように) ページを元に戻すと、すべてが美しく機能しました。

これで問題が解決した理由はまだわかりませんが、ページとポップアップは機能します。

誰かが説明を持っていれば、私はそれを感謝します!

ありがとう

于 2012-07-04T06:11:00.343 に答える