0

私は同じような名前の他の投稿を読んだことがありますが、それらの問題はどれも私のものと一致せず、それらの解決策も私のものを解決しませんでした。モーダル(ish)ボックスを表示するリンクボタンフィールドのあるグリッドビューがあります。linkbuttonフィールドがクライアント側ではなくサーバー側を呼び出すため、JQUERYモーダルフォームを機能させることができませんでした。代わりに、リンクボタンをクリックすると、CSSを使用してaspパネルが表示され、モーダル(っぽい)に見えます。そのパネル内に、panel.visible=falseを設定してモーダルを終了するために使用されるaspボタンがあります。

ただし、[終了]ボタンをクリックしても、パネルを非表示にするbtnExitProject_Clickサブプロシージャが呼び出されることはありません。通常、Visual Studioのデザインモードでは、ボタンをダブルクリックすると、サーバー側のコードに「onClick」イベントが表示されます。ただし、今はpage_loadサブに移動します。何が起こっているのかわかりません。パネルの外側にあるページ上の他のボタンは問題なく機能し、jquery関数を呼び出す[プロジェクトに参加]ボタン(写真を参照)も問題なく機能します。

<asp:Panel ID="pnlProjectInfo" runat="server" Visible="false">
    <div class="overlay"></div>
    <div class ="projectPanel">

        <span class="spanStyle">Project Code: </span><asp:Label ID="lblProjectCode" runat="server" Text="[proj code]" CssClass="lblStyle1"></asp:Label><br /><br />
        <span class="spanStyle">Entry Date: </span><asp:Label ID="lblEntryDate" runat="server" CssClass="lblStyle1"></asp:Label><br /><br />
        <span class="spanStyle">Project: </span><br />
        <asp:TextBox ID="tbProject" runat="server" Width="500px" CssClass="tbStyle1"></asp:TextBox><br />
        <span class="spanStyle">Organization: </span><br />
        <asp:TextBox ID="tbOrgName" runat="server" Width="395px" CssClass="tbStyle1" Enabled="false"></asp:TextBox><br />
        <span class="spanStyle">Project Leader: </span><br /><asp:TextBox ID="tbProjLeader" runat="server" Width="196px" CssClass="tbStyle1"></asp:TextBox><br />
        <span class="spanStyle">Description: </span><br /><asp:TextBox ID="tbDescription" runat="server" 
            Height="50px" Width="500px" TextMode="MultiLine" CssClass="tbStyle1"></asp:TextBox><br />
        <span class="spanStyle">Comment: </span><br /><asp:TextBox ID="tbComment" runat="server" 
            Height="50px" Width="500px" TextMode="MultiLine" CssClass="tbStyle1"></asp:TextBox><br />

        <br />


        <span class="spanStyle">Project Members: </span>
        <br />

         <asp:GridView ID="gvProjectMembers" runat="server" AutoGenerateColumns="False" 
            CellPadding="3" 
            Width="512px" Font-Names="Arial" GridLines="Vertical" BackColor="White" 
            BorderColor="#333333" BorderStyle="Solid" BorderWidth="1px" 
            CssClass="projMembersGV">
            <RowStyle BackColor="#ecf1ef" ForeColor="Black" HorizontalAlign="Center" 
                 VerticalAlign="Top" />
            <Columns>
                <asp:BoundField DataField="individual_first_name" HeaderText="First Name" />
                <asp:BoundField DataField="individual_last_name" HeaderText="Last Name" />
                <asp:BoundField DataField="percentage_effort" HeaderText="Effort"  />
                <asp:BoundField DataField="participation_description" 
                    HeaderText="Participation" />
                <asp:BoundField DataField="active_indicator" HeaderText="Active" />
                <asp:CommandField ButtonType="Button" ShowEditButton="True" />
            </Columns>
            <FooterStyle BackColor="#CCCCCC" ForeColor="Black" />
            <PagerStyle BackColor="#999999" ForeColor="Black" HorizontalAlign="Center" />
             <EmptyDataTemplate>
                 No members assinged to this project in the database.
             </EmptyDataTemplate>
            <SelectedRowStyle BackColor="#008A8C" Font-Bold="True" ForeColor="White" />
            <HeaderStyle BackColor="#333333" Font-Bold="True" ForeColor="White" />
            <AlternatingRowStyle BackColor="#ecf1ef" />
        </asp:GridView>
         <br />
        <button id="create-user" type="button">Join Project</button> <!-- displays a jquery modal -->
        <asp:Button ID="btnExitProject" runat="server" Text="Close" CssClass="btnClose" CausesValidation="false" Enabled="true" />





    </div>
</asp:Panel>

パネルの外観は次のとおりです。 モーダルパネル

4

3 に答える 3

1

ボタンクリックイベントをボタンに接続していないようです。これからコードを変更してみてください:

<asp:Button ID="btnExitProject" runat="server" Text="Close" 
             CssClass="btnClose" CausesValidation="false" Enabled="true" />

これに:

<asp:Button ID="btnExitProject" runat="server" Text="Close" 
             CssClass="btnClose" CausesValidation="false" Enabled="true" OnClick="btnExitProject_Click" />
于 2012-06-15T16:14:44.813 に答える
1

ASP.NET ボタンを配線して btnExitProject_Click を呼び出していません。

<asp:Button ID="btnExitProject" runat="server" Text="Close" CssClass="btnClose" CausesValidation="false" Enabled="true" OnClick="btnExitProject_Click" />
于 2012-06-15T16:15:44.610 に答える
0

サーバー側の onclick イベントの代わりに JQuery を使用することにしました。応答時間がはるかに速いため、これは実際に素晴らしいアイデアであることが証明されました.

私の btnExitProject を次のものに置き換えました。

<input type="button" id="close_modal" value="Close"/> 

次に、$(document).ready(function() {

 $("#close_modal")
        .button()
        .click(function() {
            $("#<%=pnlProjectInfo.ClientID %>").hide();
        });

これは、「close_modal」ID のボタンがクリックされたときに、ASP パネルを非表示にする必要があることを示しています。パネルは asp であるため、コードで指定された ID は実際の ID として読み取られるものではないため"#<%=pnlProjectInfo.ClientID %>"、パネルを参照する必要がありました。

助けてくれてありがとう!

于 2012-06-15T16:43:00.440 に答える