顯示具有 ajax 標籤的文章。 顯示所有文章
顯示具有 ajax 標籤的文章。 顯示所有文章

2013年1月18日 星期五

Asp.net TextBox 限制輸入數字


轉載 : http://eos45.pixnet.net/blog/post/38475874-asp.net-textbox-%E9%99%90%E5%88%B6%E8%BC%B8%E5%85%A5%E6%95%B8%E5%AD%97

第一種 使用javaScript
內加入如下的Function

   
PageLoad中加入屬性

textbox_Name.Attributes.Add("OnKeyPress", "txtKeyNumber();");
或者直接寫在HTML中的Textbox屬性裡
 OnKeyPress="if(((event.keyCode>=48)&&(event.keyCode <=57))||(event.keyCode==46)) {event.returnValue=true;} else{event.returnValue=false;}" >

紅色的部分就是添加的屬性,使Textbox只能輸入數字 

2種方法,使用.net提供的AJAX擴充控制項
其中有個FilteredTextBox可以附加到TextBox的控制項中
其中有個FilterType 可以選擇NumbersLowercaseLettersUppercaseLettersCustom
透過設定他們就可以達到要篩選輸入類型的限制,而且可複合使用例如FilterType="Custom, Numbers"
屬性表如下
它的属性如下:
屬性
描述
TargetControlID
要進行篩選的TextBoxID
FilterType
篩選類型,提供如下四種
NumbersLowercaseLettersUppercaseLettersCustom
可以同時指定多個類型 :
FilterType="Custom, Numbers"
ValidChars
FilterTypeCustom,允許輸入的字元,其他的將被忽略
ValidChars="+-=/*()."


2012年11月12日 星期一

asp.net ajax 彈不出alert對話框的解決辦法

vb 寫法ScriptManager.RegisterStartupScript(Button2, GetType(Button), "JavaScript_Sample1", "window.alert(""Hello!! Code Behind!!"")", True)
c# 寫法ScriptManager.RegisterClientScriptBlock(this.Page, typeof(Page), "message", "javascript:alert('" + "YouAre Msg" + "')", true);

-------------------------------------------

asp.net ajax 彈不出alert對話框的解決辦法

想用js腳本輸出一些提示,可是不管是用 Page.RegisterClientScriptBlock還是用 Page.RegisterStartupScript

注冊,該死的提示信息總是不出來。其實不是不出來,只是我們叫錯了它們的名字,我們只要用下面的這條語句︰

 ScriptManager.RegisterClientScriptBlock(UpdatePanel1, this.GetType(), "click", "alert('提示信息')", true);

就可以正常的彈出alert對話框了。

    注︰如果在頁面中有多個UpdatePanel,如果每個UpdatePanel的UpdateMode都是“always”[默認值]的話,

那麼你使用那個UpdatePanel的實例作為參數都可以;如果每個UpdaePanel的UpdateMode=conditional,

那麼你必須使用正在更新的那個UpdatePanel作為參數,這樣腳本才能起作用。


所以...我把msg  Function 改為..
        ///

        /// display msg : msg("")
        ///
        ///
        protected void AJAX_msg(string msgstr)
        {
            msgstr = msgstr.Replace("'", "").Replace("\n", "").Replace("\r", "").Replace('"', '”').Replace("(", "(").Replace(")", ")").Replace(";", ";");
            string javastr  = "alert('" + msgstr.ToString() + "' );\n";
            ScriptManager.RegisterClientScriptBlock(UpdatePanel1, this.GetType(), "AJAX_msg", javastr, true);
        }


///轉載 網路上

ScriptManager.RegisterClientScriptBlock(this.Page, typeof(Page), "message", "javascript:alert('" + GetMsg.GetCode("W0834") + "')", true);

ScriptManager.RegisterClientScriptBlock(this.Page, typeof(Page), "message", "javascript:alert('" + "YouAre Msg" + "')", true);

---------------------------------------

protected void Page_Load(object sender, EventArgs e)
    {
     
        string js="document.getElementById('btn').value='測試';";
        ScriptManager.RegisterClientScriptBlock(this, this.GetType(), Guid.NewGuid().ToString(), js, true);
    }
js註冊在
底下,button上面,這時候button還沒載入,會出現js錯誤
如果您在Code-Behind寫了
    protected void Page_Load(object sender, EventArgs e)
    {
         string js="document.getElementById('btn').value='測試';";
        ScriptManager.RegisterStartupScript(this,this.GetType(),Guid.NewGuid().ToString(),js,true);
    }
js註冊在button之後,
前面,因為這時候button已經載入,js的程式碼抓得到button目標,執行成功
如果是單純做頁面跳頁(window.location.href)
我都是用
RegisterClientScriptBlock,這樣使用者還沒看到畫面,頁面就已經跳頁
如果要抓取頁面上的DOM做處理,我都是用RegisterStartupScript 確保js一定抓得到頁面上的DOM