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;
        }

RemortApp

RemoteApp の動作について
・「RDPShell」が起動している

    ''' 
    ''' RemoteAppで起動しているか判定
    ''' 
    ''' 
    ''' 
    Public Function IsRemoteApp() As Boolean
        Try
            Using mos As New System.Management.ManagementObjectSearcher( _
                String.Format( _
                    "SELECT * FROM Win32_Process WHERE Name LIKE 'RDPSHELL.EXE'"))
                Using moc As System.Management.ManagementObjectCollection = mos.[Get]()
                    For Each mo As System.Management.ManagementObject In moc
                        Using mo
                            'プロセスIDを取得する
                            Dim processId As Integer = Convert.ToInt32(mo("ProcessId"))
                            Dim name As String = mo("Name").ToString()
                            Try
                                Dim methodName(1) As String
                                mo.InvokeMethod("GetOwner", methodName)
                                Dim user As String = methodName(0)
                                Dim domain As String = methodName(1)
                                If user = Nothing Then user = ""
                                If user.ToUpper() = System.Environment.UserName.ToUpper() Then
                                    Return True
                                End If
                            Catch ex As Exception
                            End Try
                        End Using
                    Next
                End Using
            End Using
        Catch ex As Exception
        End Try
        Return False
    End Function
    ''' 
    ''' RemoteAppで起動しているか判定
    ''' 
    ''' 
    ''' 
    Public Function IsRemoteApp() As Boolean
        Try
            Dim mc As New System.Management.ManagementClass("Win32_Process")
            Dim moc As System.Management.ManagementObjectCollection = mc.GetInstances()
            Dim mo As System.Management.ManagementObject
            For Each mo In moc
                Dim id As String = mo("ProcessId").ToString()
                Dim name As String = mo("Name").ToString()
                Try
                    If name.ToUpper() = "RDPSHELL.EXE" Then
                        Dim methodName(1) As String
                        mo.InvokeMethod("GetOwner", methodName)
                        Dim user As String = methodName(0)
                        Dim domain As String = methodName(1)
                        If user = Nothing Then user = ""
                        If user.ToUpper() = System.Environment.UserName.ToUpper() Then
                            Return True
                        End If
                    End If
                Catch ex As Exception
                End Try
            Next mo
        Catch ex As Exception
        End Try
        Return False
    End Function

php

PHPでファイルをダウンロードする方法とよくあるエラー

PHPまとめ – ヘッダー
・生のHTTPヘッダーを送信する
・ステータスコードを指定
・別のページに飛ばす

PDF(等)のファイルをブラウザで開かせずにダウンロード形式にさせる。

PHPで画像を動的に作成

PHPでJSONを出力して、JavaScriptで取得する方法

PHPで画像を動的に出力する際にキャッシュさせない

○エラーが表示されない時、ソースの先頭に以下を追加

error_reporting(E_ALL);
ini_set('display_errors', TRUE);

弥生

○他のPCのSqlServerのデータをバックアップしようとすると、「エラー 67 ネットワーク名が見つかりません」
弥生会計のバックアップ時エラー
共有フォルダ―「C:\ProgramData\Yayoi\Backup」
共有名「YAccBackup$」
・「\\<PC名>\YAccBackup$」でアクセスした時、ID/PWを聞かれないようにしておく
参考:Windows 7 Home Premium で、パスワード無しの共有フォルダ