ASP.Net

[ASP.NET AJAX]クライアントサイド・スクリプトからXML Webサービスを非同期呼び出しするには?
・郵便番号を入力すると、リアルタイムで住所がテキストボックスに表示される
・ブリッジ機能

[ASP.NET AJAX]Webサービス・ブリッジ機能により構造化データを受け渡しするには?(基本編)

第2回 PageRequestManagerクラスでUpdatePanelコントロールを極める!
・UpdatePanel
・2重クリック防止
・非同期ポストバックの完了時に一定時間背景色を変える。エラーを取得する。

ASP.NET Site.Masterに設定するJavaScriptファイルのパスについて

・<script src=”<%= ResolveUrl(“~/Scripts/jquery.min.js”) %>” type=”text/javascript”></script>

・<script src=”/Scripts/jquery.min.js” type=”text/javascript”></script> ・・・可?

【ASP.NET】Validatorを用いての検証結果をjavascriptのalertで出力するには?

ASP.NETのValidatorをjavascriptから呼び出す

フェッチ機能付きのコントロールの作成

非同期ポストバックの判定方法

ASP.Net JavaScript

○2重クリック防止 - ボタンを非活性化

<input type="submit" name="btn_Regist" value="保存" onclick="DisableButton(this);" id="btn_Regist"/>

        function DisableButton(b) {
            b.style.display = 'none';
            var ele = b.cloneNode(true);
            ele.id = '';
            ele.disabled = true;
            ele.style.display = '';
            b.parentNode.insertBefore(ele, b);
        }

○2重クリック防止 - 画面フリーズ

    <style type="text/css">    
        .loading
        {
            position:fixed;
            top:50%;
            left:50%;
            color:Red;
            z-index:100;

        }
       .lockOff
        {
          display: none;
          visibility: hidden;
        }
        .lockOn
        {
          display: block;
          visibility: visible;
          position: absolute;
          z-index: 800;
          top: 0px;
          left: 0px;
          width: 105%;
          height: 205%;
          background-color: #ffffff;
          text-align: center;
          padding-top: 20%;
          
          opacity: 0.25;
        }     
    </style>

  <div id="LockPane" class="lockOff"></div>  

<asp:Label ID="Status" runat="server" Text="" CssClass="loading"></asp:Label>


    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
    <script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js"></script>


        function ShowWait(exported) {
            $(".lockOff").addClass("lockOn")
            var h = $(".lockOn").height();
            $(".lockOn").height(document.body.clientHeight);
            $get('Status').innerHTML = "<img  src='/images/loader.gif'  >";

            if (exported) {
                intervalId = setInterval(function () {
                    if ($.cookie('exported')) {
                        HideWait();
                        // ポーリングを停止
                        clearInterval(intervalId);
                        // フラグをクリア
                        $.removeCookie('exported', { path: '/' });
                    }
                }, 1000);
            }
        }

        function HideWait() {
            $(".lockOff").removeClass("lockOn");
            $get('Status').innerHTML = "";
        }

        function confirmAndWait(txt, exported) {
            if (confirm(txt)) {
                ShowWait(exported);
                return true;
            }
            return false;
        }

・HTML
<input type="submit" name="btn" value="次へ" onclick="ShowWait();" id="btn"/>

<input type="submit" name="btn" value="ダウンロード" onclick="ShowWait(true);" id="btn"/>
(ASP.Net)
 Response.BinaryWrite(System.IO.File.ReadAllBytes(file));
 HttpCookie cookie = new HttpCookie("exported");
 cookie.Value = "ok";
 cookie.Expires = DateTime.Now.AddMinutes(1);
 Response.Cookies.Add(cookie);
 Response.End();

<input type="submit" name="btn" value="確認" onclick="confirmAndWait('よろしいですか?');" id="btn"/>

○JavaScript

  <!--<script type="text/javascript" src="/Scripts/jquery-1.7.1.min.js"></script>-->
 <!--<script type="text/javascript" src="/Scripts/jquery-1.4.1.cookie.min.js"></script>-->
 <!--<script type="text/javascript" src="<%= ResolveUrl("~/Scripts/1.7.1jquery.min.js") %>"></script>-->
 <!--<script type="text/javascript" src="<%= ResolveUrl("~/Scripts/1.4.1jquery.cookie.min.js") %>"></script>-->
 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
 <script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js"></script>

ASP.net DataTable Relationでマスタ比較

        public void CompMst(DataTable pfrom, DataTable pto, List RelationCols, List NonCmopCols)
        {
            try
            {
                putLog(MethodBase.GetCurrentMethod(),"From=" + pfrom.TableName + " To=" + pto.TableName);

                for (int i = 0; i < NonCmopCols.Count; i++)
                {
                    NonCmopCols[i] = NonCmopCols[i].ToUpper();
                }

                if (pfrom.GetType().Equals(pto.GetType()) == false)
                {
                    putLog("型が不一致 From=" + pfrom.GetType().ToString() + " To=" + pto.GetType().ToString(), logType.Warn);
                    return;
                }

                if (pfrom.Columns.Count != pto.Columns.Count)
                {
                    putLog("列数が不一致 From=" + pfrom.Columns.Count.ToString() + " To=" + pto.Columns.Count.ToString(), logType.Warn);
                    return;
                }

                DataSet ds = new DataSet(); //from join to

                DataTable _from = pfrom.Copy();
                _from.TableName = "from";
                ds.Tables.Add(_from);

                DataTable _to = pto.Copy();
                _to.TableName = "to";
                ds.Tables.Add(_to);

                DataSet ds1 = new DataSet(); // to join from
                ds1.Tables.Add(_to.Copy());
                ds1.Tables.Add(_from.Copy());

                DataColumn[] colDs_0 = new DataColumn[RelationCols.Count];
                DataColumn[] colDs_1 = new DataColumn[RelationCols.Count];
                DataColumn[] colDs1_0 = new DataColumn[RelationCols.Count];
                DataColumn[] colDs1_1 = new DataColumn[RelationCols.Count];

                for (int i = 0; i  0)    //fromとtoの共通の行
                    {
                        foreach (DataRow r1 in rows)
                        {
                            // 項目の値を比較
                            string str = string.Empty;
                            bool mod = utility.Comp(r1, ref str, r0, NonCmopCols);
                            if (mod == true)
                            {
                                putLog("変更行 " + str);
                            }
                        }
                    }
                    else //fromにあってtoに無い。削除行
                    {
                        string str = string.Empty;
                        bool mod = utility.Comp(r0, ref str);
                        putLog("削除行 " + str);
                    }
                }

                foreach (DataRow r0 in ds1.Tables[0].Rows)
                {
                    if (r0.GetChildRows(ds1.Relations[0]).Length == 0)    //toにあってfromに無い。追加行
                    {
                        string str = string.Empty;
                        bool mod = utility.Comp(r0, ref str);
                        putLog("追加行 " + str);
                    }
                }
            }
            catch (Exception ex)
            {
                _putLog(ex);
            }
        }

        public static bool Comp(DataRow r, ref string str, DataRow r1 = null, List NonCmopCols = null)
        {
            StringBuilder sb = new StringBuilder();
            bool mod = false;

            for (int c = 0; c < r.Table.Columns.Count; c++)
            {
                sb.Append(r.Table.Columns[c].ColumnName + "=" + r[c].ToString());
                if (r1 != null)
                {
                    if (NonCmopCols != null && NonCmopCols.IndexOf(r.Table.Columns[c].ColumnName.ToUpper()) < 0)
                    {
                        if (r[c].Equals(r1[c]) == false)
                        {
                            mod = true;
                            sb.Append("<<" + r1[c].ToString() + ">>");
                        }
                    }
                }                                
                sb.Append("__ ");            
            }

            str = sb.ToString();
            return mod;
        }