2011年12月29日 星期四

彈出錯誤對話框

StringBuilder sb = new StringBuilder(); 
sb.Append("<script language=\"javascript\"> \n"); 
sb.Append("alert(\"" + str.Trim() + "\"); \n"); 
sb.Append("</script>"); 
System.Web.HttpContext.Current.Response.Write(sb.ToString()); 


如果要關閉目前頁面的話在script中間加入


"window.close();\n"



2011年12月14日 星期三

如何用JS去找到你所想找的ASP.NET控制項

document.getElementById('<%= ControlID.ClientID %>').innerText = "";

2011年12月13日 星期二

ASP.net  在GridView 中 CheckBox 全選

JS:


<script type="text/javascript">
function Check(parentChk,ChildId)
{
   var oElements = document.getElementsByTagName("INPUT");
        var bIsChecked = parentChk.checked;

   for(i=0; i<oElements.length;i++)
   {
       if( IsCheckBox(oElements[i]) &&
           IsMatch(oElements[i].id, ChildId))
       {
           oElements[i].checked = bIsChecked;
       }        
   }  
}

function IsMatch(id, ChildId)
{
   var sPattern ='^GridView.*'+ChildId+'$';
   var oRegExp = new RegExp(sPattern);
   if(oRegExp.exec(id))
       return true;
   else
       return false;
}

function IsCheckBox(chk)
{
   if(chk.type == 'checkbox') return true;
   else return false;
}
</script>

2011年5月17日 星期二

如何開啟視窗後讓主視窗暫停動作

           
From f = new From();
if (RiskModule.ShowDialog() == DialogResult.OK)
{
        RiskModule.Dispose();
}

把 f中Button設定成OK

this.buttonOK.DialogResult = System.Windows.Forms.DialogResult.OK;

2011年4月19日 星期二

C# Label 換行

1. 問題

    Label 在winform中進行換行

2.解法

   方法一:在字串中欲斷行的位置加入"\r\n"
                 
                   如textBox換行方式一樣
 
   方法二:(1) 設定 Label.AutoSize = true;

                   (2) 設定 Label.Dock = DockStyle.Fill;

                   (4) 設定 Label.MaximumSize = new System.Drawing.Size(寬度, 0);

                   (5) 此時你所要顯示的字如果超過設定"寬度",就會自動斷行。

3.如果要讓Label隨著Form的大小變化的話

    (1) 把MaximumSize的寬度設為Form的寬度

    (2) 當Form變化時,先把目前的控制項先移除,再重新繪制Label

    例子

    int labelWidth = Form.Width;
    Form.Resize += new System.EventHandler(this.Form_Resize);

    private void printLabel()
   {
       
         clearForm();
         Label.AutoSize = true;
         Label.Dock = DockStyle.Fill;
         Label.MaximumSize = new System.Drawing.Size(labelWidth, 0);
   }

   private void Form_Resize(object sender, EventArgs e)
   {
            Form f = (Form)sender;        
            labelWidth = f.Width      
            printLabel();    
   }

    private void clearForm()
   {
            this.SuspendLayout();
            Form.Controls.Clear();
            this.ResumeLayout(false);
            this.PerformLayout();
   }

4.延伸閱讀

   http://dev.firnow.com/course/4_webprogram/asp.net/netjs/2007926/74504.html

C# TextBox換行

1. 問題

     TextBox在winform裡要如何換行

2. 解法
   
    (1)將textbox中的Multiline属性设置为true
 
    (2)在要斷行的地方加入 "\r\n"

3.例子

   第一個第二個第三個中,要每一個都在不同行
   texbox.text = "第一個\r\n第二個\r\n第三個";
 
  顯示方式就會變成

  第一個
  第二個
  第三個

4.延伸閱讀

 http://developer.51cto.com/art/200909/150860.htm

2011年4月13日 星期三

C# 限制TextBox僅能輸入數字

1. 問題:

    限制TextBox在輸入時,只能輸入數字

2. 方法:

        private void textBox_KeyPress(object sender, KeyPressEventArgs e)
        {
            if ((Char.IsDigit(e.KeyChar) || e.KeyChar == (Char)13 || e.KeyChar == (Char)46))
            {
                e.Handled = false;
            }
            else
            {
                e.Handled = true;
            }
        }
  
 3. 備註:

       8 為Enter 
      13為BackSpace
      46為 . (小數點)

  4.延伸閱讀:

     http://www.dotblogs.com.tw/chou/archive/2009/07/31/9774.aspx?fid=9649
   
     http://msdn.microsoft.com/zh-tw/library/60ecse8t%28v=vs.80%29.aspx