C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[6]: ModalPopupExtenderにおけるGridView


(過去ログ 122 を表示中)

[トピック内 14 記事 (1 - 14 表示)]  << 0 >>

■73033 / inTopicNo.1)  ModalPopupExtenderにおけるGridView
  
□投稿者/ スカーレット (1回)-(2014/08/12(Tue) 16:20:21)

分類:[ASP.NET (VB)] 

開発環境
Visual Studio 2008

ModalPopupExtenderにGridViewを配置して、さらにGridViewに選択ボタンを表示するようにしております。
その選択ボタンを押してしまうと、ポップアップが閉じてしまいます。(POSTしてしまうため?!)
選択ボタンを押してもポップアップが閉じないようにする方法はありますでしょうか?
最終的には、ポップアップの[決定]ボタンで閉じるようにしたいのですが。。。

引用返信 編集キー/
■73034 / inTopicNo.2)  Re[1]: ModalPopupExtenderにおけるGridView
□投稿者/ ぽぴ王子 (8回)-(2014/08/12(Tue) 16:51:38)
ぽぴ王子 さんの Web サイト
No73033 (スカーレット さん) に返信
> 開発環境
> Visual Studio 2008
>
> ModalPopupExtenderにGridViewを配置して、さらにGridViewに選択ボタンを表示するようにしております。
> その選択ボタンを押してしまうと、ポップアップが閉じてしまいます。(POSTしてしまうため?!)
> 選択ボタンを押してもポップアップが閉じないようにする方法はありますでしょうか?
> 最終的には、ポップアップの[決定]ボタンで閉じるようにしたいのですが。。。

GridViewの選択ボタンにJavaScriptでclickイベントを作成しておき、ボタンを
押したときにポストバックするのではなく「選択した」とする内容をどこか
(Hidden項目など)に保存させておいて[決定]ボタンでポストバックさせるのが
良いかと思います。
GridViewの行を決める一意の内容(キー的なもの)をHidden項目に記録しておいて
ポストバックされたときにそのHidden項目の内容から判断するという感じです。
引用返信 編集キー/
■73036 / inTopicNo.3)  Re[1]: ModalPopupExtenderにおけるGridView
□投稿者/ WebSurfer (319回)-(2014/08/12(Tue) 17:09:20)
No73033 (スカーレット さん) に返信
> 選択ボタンを押してもポップアップが閉じないようにする方法はありますでしょうか?
> 最終的には、ポップアップの[決定]ボタンで閉じるようにしたいのですが。。。

全体的なシナリオや、問題のページの具体的な構成が分からないので、目的に適うかどうか
わかりませんが、上記の局所的なことに対応するには以下の手段があります。

(1) GridView を UpdatePanel に入れる。

または、

(2) ポストバック後再描画される時に、ModalPopup を表示する。
引用返信 編集キー/
■73060 / inTopicNo.4)  Re[2]: ModalPopupExtenderにおけるGridView
□投稿者/ スカーレット (2回)-(2014/08/14(Thu) 19:41:14)
No73036 (WebSurfer さん) に返信
> ■No73033 (スカーレット さん) に返信
>>選択ボタンを押してもポップアップが閉じないようにする方法はありますでしょうか?
>>最終的には、ポップアップの[決定]ボタンで閉じるようにしたいのですが。。。
> 
> 全体的なシナリオや、問題のページの具体的な構成が分からないので、目的に適うかどうか
> わかりませんが、上記の局所的なことに対応するには以下の手段があります。
> 
> (1) GridView を UpdatePanel に入れる。
> 
> または、
> 
> (2) ポストバック後再描画される時に、ModalPopup を表示する。


WebSurfer さん
ご返信ありがとうございます。

 (1) GridView を UpdatePanel に入れておりますが、現象が発生してしまいます。
ちなみに、コードは下記です。

 (2) ポストバック後再描画される時に、ModalPopup を表示する。
上記の方法をご教授願えないでしょうか?
よろしくお願い致します。


        <asp:Button ID="Btn_SYAIN" runat="server" Text="社員番号" />
        <asp:Panel ID="pnlDialog" runat="server">
            <asp:Panel ID="pnl" runat="server" Wrap="False" BackColor="#C0C0FF">
            <table>
                <tr>
                    <td>
                        <asp:Panel ID="Panel4" runat="server" Height="340px" ScrollBars="Auto">
                            <asp:UpdatePanel ID="UpdatePanel2" runat="server">
                                <ContentTemplate>
                                    <asp:GridView ID="grd_ss" runat="server" AutoGenerateColumns="False" 
                                        Font-Names="MS ゴシック" Font-Size="12pt" ShowHeader="False">
                                        <RowStyle BackColor="White" />
                                        <Columns>
                                            <asp:CommandField ShowSelectButton="True">
                                                <ItemStyle HorizontalAlign="Center" Width="40px" />
                                            </asp:CommandField>
                                            <asp:BoundField DataField="col1" HeaderText="営業担当コード">
                                                <ItemStyle Width="40px" />
                                            </asp:BoundField>
                                            <asp:BoundField DataField="col2" HeaderText="営業担当名">
                                                <ItemStyle Width="140px" />
                                            </asp:BoundField>
                                        </Columns>
                                        <SelectedRowStyle BackColor="Black" ForeColor="White" />
                                    </asp:GridView>
                                    <div style="display: none">
                                        <asp:Label ID="Lbl_Syain" runat="server"></asp:Label>
                                    </div>
                                </ContentTemplate>
                            </asp:UpdatePanel>
                        </asp:Panel>
                    </td>
                    <td style="vertical-align: top">
                        <div style="margin-left: 10px">
                            <div>
                                <input id="Button2" type="button" value="戻る" />
                            </div>
                            <div>
                                <input id="Button1" type="button" value="決定" />
                            </div>
                        </div>
                    </td>
                </tr>
            </table>
            </asp:Panel>
        </asp:Panel>
        <asp:ModalPopupExtender ID="modal" runat="server" 
            TargetControlID="Btn_SYAIN" PopupControlID="pnlDialog" 
            BackgroundCssClass="modalBackground" OkControlID="Button1" 
            OnOkScript="onOk()" CancelControlID="Button2" 
            DropShadow="true" Drag="true" PopupDragHandleControlID="pnl" />


引用返信 編集キー/
■73061 / inTopicNo.5)  Re[2]: ModalPopupExtenderにおけるGridView
□投稿者/ スカーレット (3回)-(2014/08/14(Thu) 19:44:57)
No73034 (ぽぴ王子 さん) に返信
> ■No73033 (スカーレット さん) に返信
>>開発環境
>>Visual Studio 2008
>>
>>ModalPopupExtenderにGridViewを配置して、さらにGridViewに選択ボタンを表示するようにしております。
>>その選択ボタンを押してしまうと、ポップアップが閉じてしまいます。(POSTしてしまうため?!)
>>選択ボタンを押してもポップアップが閉じないようにする方法はありますでしょうか?
>>最終的には、ポップアップの[決定]ボタンで閉じるようにしたいのですが。。。
>
> GridViewの選択ボタンにJavaScriptでclickイベントを作成しておき、ボタンを
> 押したときにポストバックするのではなく「選択した」とする内容をどこか
> (Hidden項目など)に保存させておいて[決定]ボタンでポストバックさせるのが
> 良いかと思います。
> GridViewの行を決める一意の内容(キー的なもの)をHidden項目に記録しておいて
> ポストバックされたときにそのHidden項目の内容から判断するという感じです。


ぽぴ王子 さん
ご返信ありがとうございます。

GridViewの選択ボタンにJavaScriptでclickイベントを作成する方法を以前調べたことがあるのですが、
わかりませんでした。

上記の方法をご教授願えないでしょうか?
よろしくお願い致します。


引用返信 編集キー/
■73068 / inTopicNo.6)  Re[3]: ModalPopupExtenderにおけるGridView
□投稿者/ WebSurfer (321回)-(2014/08/15(Fri) 01:02:19)
No73060 (スカーレット さん) に返信

>  (1) GridView を UpdatePanel に入れておりますが、現象が発生してしまいます。
> ちなみに、コードは下記です。

詳しく見る時間がないのでアップされたコードは見てませんが(明日、時間があれば見ておきま
す)、自分が自分が作ったコードで検証た限りでは期待通りに行きましたが・・・

そのコードをアップしておきます。見ておいてください、

<%@ Page Language="C#" %>
<%@ Register Assembly="AjaxControlToolkit" 
    Namespace="AjaxControlToolkit" TagPrefix="asp" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
    protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
    {
        int index = ((GridView)sender).SelectedIndex;
    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title></title>
    <style type="text/css">       
        .modalBackground {
            background-color: Gray;
            filter: alpha(opacity=70);
            opacity: 0.7;
        }

        .modalPopup {
            height: 250px;
            width: 400px;
            background-color: White;
        }

        .modalDraggableArea {
            cursor: move; 
            background-color: #DDDDDD; 
            border: solid 1px Gray;
        }

        body {
            height: 400px;
            width: 800px;
            border: 1px solid red;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <asp:ToolkitScriptManager ID="Manager1" runat="server">
    </asp:ToolkitScriptManager>
    <asp:ModalPopupExtender ID="ModalPopupExtender1" 
        runat="server"
        TargetControlID="Button1" 
        PopupControlID="Panel1" 
        PopupDragHandleControlID="Panel2"
        BackgroundCssClass="modalBackground"
        OkControlID="Button2"
        CancelControlID="Button3">
    </asp:ModalPopupExtender>

    <asp:Button ID="Button1" 
        runat="server" Text="ModalPopup 表示" />
    
    <asp:Panel ID="Panel1" 
        runat="server" 
        CssClass="modalPopup">
        <asp:Panel ID="Panel2" 
            runat="server" 
            CssClass="modalDraggableArea">
            <p style="text-align: center;">
                ********* ここをつかんでドラッグ *********
            </p>                      
        </asp:Panel>
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
                <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
                    ConnectionString="<%$ ConnectionStrings:Northwind %>" 
                    SelectCommand="SELECT TOP 5 [ProductID], [ProductName], [UnitPrice] FROM [Products]">
                </asp:SqlDataSource>

                <asp:GridView ID="GridView1" 
                    runat="server" 
                    AutoGenerateColumns="False" 
                    DataKeyNames="ProductID" 
                    DataSourceID="SqlDataSource1" 
                    OnSelectedIndexChanged="GridView1_SelectedIndexChanged">
                    <Columns>
                        <asp:CommandField ShowSelectButton="True" />
                        <asp:BoundField DataField="ProductID" 
                            HeaderText="ProductID" 
                            InsertVisible="False" 
                            ReadOnly="True" 
                            SortExpression="ProductID" />
                        <asp:BoundField DataField="ProductName" 
                            HeaderText="ProductName" 
                            SortExpression="ProductName" />
                        <asp:BoundField DataField="UnitPrice" 
                            HeaderText="UnitPrice" 
                            SortExpression="UnitPrice" />
                    </Columns>
                </asp:GridView>
            </ContentTemplate>
        </asp:UpdatePanel>
        <p style="text-align: center;">
            <asp:Button ID="Button2" runat="server" Text="OK" />
            <asp:Button ID="Button3" runat="server" Text="Cancel" />
        </p>
    </asp:Panel>

    </form>
</body>
</html>

>  (2) ポストバック後再描画される時に、ModalPopup を表示する。
> 上記の方法をご教授願えないでしょうか?

こちらは実際に検証していませんが、GridView.SelectedIndexChanged イベントのハンドラで
ModalPopup を表示するコードを追加すればうまく行きませんか?

引用返信 編集キー/
■73069 / inTopicNo.7)  Re[3]: ModalPopupExtenderにおけるGridView
□投稿者/ WebSurfer (322回)-(2014/08/15(Fri) 13:23:44)
No73060 (スカーレット さん) に返信
> (1) GridView を UpdatePanel に入れておりますが、現象が発生してしまいます。
> ちなみに、コードは下記です。

バージョンの違いとかが影響しているのかもしれませんね。ASP.NET と Toolkit の
バージョンは何ですか?

ちなみに自分が検証に使ったものは以下の通りです。

ASP.NET 4
AJAX Control Toolkit .NET 4 June 2013 Release Version 7.0607
引用返信 編集キー/
■73076 / inTopicNo.8)  Re[4]: ModalPopupExtenderにおけるGridView
□投稿者/ スカーレット (6回)-(2014/08/16(Sat) 19:39:35)
No73069 (WebSurfer さん) に返信
> ■No73060 (スカーレット さん) に返信
>> (1) GridView を UpdatePanel に入れておりますが、現象が発生してしまいます。
>>ちなみに、コードは下記です。
>
> バージョンの違いとかが影響しているのかもしれませんね。ASP.NET と Toolkit の
> バージョンは何ですか?
>
> ちなみに自分が検証に使ったものは以下の通りです。
>
> ASP.NET 4
> AJAX Control Toolkit .NET 4 June 2013 Release Version 7.0607


バージョンは、以下の通りです。
ASP.NET 3.5
AJAX Control Toolkit .NET 3.5 December 2013 Release Version 7.1213

#やはり、バージョン3.5では、ダメなのでしょうか。。。



引用返信 編集キー/
■73077 / inTopicNo.9)  Re[5]: ModalPopupExtenderにおけるGridView
□投稿者/ WebSurfer (323回)-(2014/08/16(Sat) 19:52:01)
No73076 (スカーレット さん) に返信
> #やはり、バージョン3.5では、ダメなのでしょうか。。。

そう思うのなら、他人に頼らず自分で検証してはいかがですか? あなたの問題ですよ。
引用返信 編集キー/
■73078 / inTopicNo.10)  Re[6]: ModalPopupExtenderにおけるGridView
□投稿者/ スカーレット (7回)-(2014/08/16(Sat) 19:57:26)
No73077 (WebSurfer さん) に返信
> ■No73076 (スカーレット さん) に返信
>>#やはり、バージョン3.5では、ダメなのでしょうか。。。
>
> そう思うのなら、他人に頼らず自分で検証してはいかがですか? あなたの問題ですよ。


すいません、その通りですね。。。


引用返信 編集キー/
■73079 / inTopicNo.11)  Re[4]: ModalPopupExtenderにおけるGridView
□投稿者/ スカーレット (8回)-(2014/08/16(Sat) 20:03:06)
No73068 (WebSurfer さん) に返信
> ■No73060 (スカーレット さん) に返信
>
>> (1) GridView を UpdatePanel に入れておりますが、現象が発生してしまいます。
>>ちなみに、コードは下記です。
>
> 詳しく見る時間がないのでアップされたコードは見てませんが(明日、時間があれば見ておきま
> す)、自分が自分が作ったコードで検証た限りでは期待通りに行きましたが・・・
>
> そのコードをアップしておきます。見ておいてください、
>
> <%@ Page Language="C#" %>
> <%@ Register Assembly="AjaxControlToolkit"
> Namespace="AjaxControlToolkit" TagPrefix="asp" %>
>
> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
>
> <script runat="server">
> protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
> {
> int index = ((GridView)sender).SelectedIndex;
> }
> </script>
>
> <html xmlns="http://www.w3.org/1999/xhtml">
> <head id="Head1" runat="server">
> <title></title>
> <style type="text/css">
> .modalBackground {
> background-color: Gray;
> filter: alpha(opacity=70);
> opacity: 0.7;
> }
>
> .modalPopup {
> height: 250px;
> width: 400px;
> background-color: White;
> }
>
> .modalDraggableArea {
> cursor: move;
> background-color: #DDDDDD;
> border: solid 1px Gray;
> }
>
> body {
> height: 400px;
> width: 800px;
> border: 1px solid red;
> }
> </style>
> </head>
> <body>
> <form id="form1" runat="server">
> <asp:ToolkitScriptManager ID="Manager1" runat="server">
> </asp:ToolkitScriptManager>
> <asp:ModalPopupExtender ID="ModalPopupExtender1"
> runat="server"
> TargetControlID="Button1"
> PopupControlID="Panel1"
> PopupDragHandleControlID="Panel2"
> BackgroundCssClass="modalBackground"
> OkControlID="Button2"
> CancelControlID="Button3">
> </asp:ModalPopupExtender>
>
> <asp:Button ID="Button1"
> runat="server" Text="ModalPopup 表示" />
>
> <asp:Panel ID="Panel1"
> runat="server"
> CssClass="modalPopup">
> <asp:Panel ID="Panel2"
> runat="server"
> CssClass="modalDraggableArea">
> <p style="text-align: center;">
> ********* ここをつかんでドラッグ *********
> </p>
> </asp:Panel>
> <asp:UpdatePanel ID="UpdatePanel1" runat="server">
> <ContentTemplate>
> <asp:SqlDataSource ID="SqlDataSource1" runat="server"
> ConnectionString="<%$ ConnectionStrings:Northwind %>"
> SelectCommand="SELECT TOP 5 [ProductID], [ProductName], [UnitPrice] FROM [Products]">
> </asp:SqlDataSource>
>
> <asp:GridView ID="GridView1"
> runat="server"
> AutoGenerateColumns="False"
> DataKeyNames="ProductID"
> DataSourceID="SqlDataSource1"
> OnSelectedIndexChanged="GridView1_SelectedIndexChanged">
> <Columns>
> <asp:CommandField ShowSelectButton="True" />
> <asp:BoundField DataField="ProductID"
> HeaderText="ProductID"
> InsertVisible="False"
> ReadOnly="True"
> SortExpression="ProductID" />
> <asp:BoundField DataField="ProductName"
> HeaderText="ProductName"
> SortExpression="ProductName" />
> <asp:BoundField DataField="UnitPrice"
> HeaderText="UnitPrice"
> SortExpression="UnitPrice" />
> </Columns>
> </asp:GridView>
> </ContentTemplate>
> </asp:UpdatePanel>
> <p style="text-align: center;">
> <asp:Button ID="Button2" runat="server" Text="OK" />
> <asp:Button ID="Button3" runat="server" Text="Cancel" />
> </p>
> </asp:Panel>
>
> </form>
> </body>
> </html>
>
>> (2) ポストバック後再描画される時に、ModalPopup を表示する。
>>上記の方法をご教授願えないでしょうか?
>
> こちらは実際に検証していませんが、GridView.SelectedIndexChanged イベントのハンドラで
> ModalPopup を表示するコードを追加すればうまく行きませんか?


度々のご返信ありがとうございます。

> こちらは実際に検証していませんが、GridView.SelectedIndexChanged イベントのハンドラで
> ModalPopup を表示するコードを追加すればうまく行きませんか?

GridView.SelectedIndexChanged イベントのハンドラで
modal.Show()
することで、ポップアップは閉じなくなりましたが、
[選択]を押下するとGridViewのスクロールバー(Panel内にUpdatePanel、GridViewを配置しております)
が先頭に戻ってしまいます。
これを回避する方法はありませんでしょうか?


引用返信 編集キー/
■73084 / inTopicNo.12)  Re[5]: ModalPopupExtenderにおけるGridView
□投稿者/ WebSurfer (325回)-(2014/08/17(Sun) 09:21:24)
No73079 (スカーレット さん) に返信
> GridView.SelectedIndexChanged イベントのハンドラで
> modal.Show()
> することで、ポップアップは閉じなくなりましたが、
> [選択]を押下するとGridViewのスクロールバー(Panel内にUpdatePanel、GridViewを配置しております)
> が先頭に戻ってしまいます。
> これを回避する方法はありませんでしょうか?

JavaScript の scrollTop を使用して、ポストバック直前の scrollTop 座標を
取得して隠しフィールドに保存し、ポストバックして再描画する時に隠しフィ
ールドに保存した座標を取得して scrollTop を設定してはいかがですか。

以下のような感じです。

リストボックスのスクロール位置を維持
http://surferonwww.info/BlogEngine/post/2011/11/20/Maintain-scroll-top-of-list-box-before-and-after-postback.aspx

あくまで「感じ」です。あなたのケースに適用可能かどうかは分かりません。そ
こはご自分で考えてください。

引用返信 編集キー/
■73085 / inTopicNo.13)  Re[6]: ModalPopupExtenderにおけるGridView
□投稿者/ スカーレット (11回)-(2014/08/17(Sun) 19:39:30)
No73084 (WebSurfer さん) に返信
> ■No73079 (スカーレット さん) に返信
>>GridView.SelectedIndexChanged イベントのハンドラで
>>modal.Show()
>>することで、ポップアップは閉じなくなりましたが、
>>[選択]を押下するとGridViewのスクロールバー(Panel内にUpdatePanel、GridViewを配置しております)
>>が先頭に戻ってしまいます。
>>これを回避する方法はありませんでしょうか?
>
> JavaScript の scrollTop を使用して、ポストバック直前の scrollTop 座標を
> 取得して隠しフィールドに保存し、ポストバックして再描画する時に隠しフィ
> ールドに保存した座標を取得して scrollTop を設定してはいかがですか。
>
> 以下のような感じです。
>
> リストボックスのスクロール位置を維持
> http://surferonwww.info/BlogEngine/post/2011/11/20/Maintain-scroll-top-of-list-box-before-and-after-postback.aspx
>
> あくまで「感じ」です。あなたのケースに適用可能かどうかは分かりません。そ
> こはご自分で考えてください。
>


WebSurfer さん
いつもご返信ありがとうございます。
教えて頂いたページを参考にしてみます。

ちなみに、ポストバック直前の scrollTop 座標を取得して隠しフィールドに保存するというのは、
ポストバック直前にJavaScriptを実行することができるということでしょうか?


引用返信 編集キー/
■73089 / inTopicNo.14)  Re[7]: ModalPopupExtenderにおけるGridView
□投稿者/ WebSurfer (326回)-(2014/08/17(Sun) 23:24:46)
No73085 (スカーレット さん) に返信

仕事でやっているんですか、それとも趣味でやっているのですか? もし、仕事でやっている
のでしたら、同僚、先輩、上司に聞いたほうが早いと思うのですが。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -