ASP.NET技巧收集(一)

來源:互聯網
上載者:User
轉自:http://www.cnblogs.com/accpfriend/archive/2008/11/07/1328865.html

1,JS,CSS引用路徑

大家在項目常會用到引用外部的JS指令碼或CSS,等  相信大家都會覺得這沒什麼可說的,真接將CSS拖進頁面即可???????

 <script src="../Web/Js/Public.js" type="text/javascript" language="javascript"></script>

 

對這種操作沒錯,但大家想過沒有,如何有一天你的檔案路徑改變了(例如, 你以前的.aspx 頁路徑在(../Web/UI/default.aspx) 與 .js檔案路徑在(../Web/JS/public.js)

現在你的.aspx頁面路徑改變了,變成(../Web/UI/Common/default.aspx)請問這樣你們直接引用的JS還能起作用嗎(大家試試..........................)不能的.為什麼呢???

因為你的src=".." 代表是找上一級,但現在你的.aspx頁面上一級UI級是沒JS這個檔案夾的,所以引且不到js指令碼,所以要改成這樣

 

 

 <script src="<%=GetURL("") %>/Web/Js/Public.js" type="text/javascript" language="javascript"></script>

 

你可以將下面的GetURL方法寫在BasePage類中,頁面只要繼承此類.

        /// <summary>
        /// Get a absolute path with ApplicationPath.
        /// </summary>
        /// <param name="pageAddress">Relative page address</param>
        /// <returns>A absolute path with ApplicationPath</returns>
        protected string GetURL(string pageAddress)
        {
            return HttpContext.Current.Request.ApplicationPath + "/" + pageAddress;
        }

 

2,控制項包含代碼塊<%%>,因此無法修改控制項集合的解決方案

造成這個錯誤的原因是在<head runat = "server"></head>裡面,使用到類似的這樣代碼<%%>, 

解決方案是,將這樣的代碼放到Body 中即可

 3,常看到csdn上有這種指令碼,隨著輸入的欄位多少,textbox也作相應的字元遞減.

 

 

JS代碼
function textCounter(field, countfield, maxlimit) {
    countfield.value = maxlimit - field.value.length;
    if (field.value.length > maxlimit) {
        countfield.style.color='#FF0000';
    }
}

function textReset(field, countfield, maxlimit) {
    if (field.value.length > maxlimit) {
        alert('描述超長,將截掉超限部分!');
    }
    field.value = field.value.substring(0,maxlimit);
    countfield.style.color='#000000';
    countfield.value = maxlimit - field.value.length;
}
HTML代碼
 <asp:TextBox runat="server" TextMode="MultiLine" ID="txtDes" class="textarea" Rows="5"
 onkeydown="textCounter(this.form.txtDes,this.form.count_0,200);" onblur="textReset(this.form.txtDes,this.form.count_0,200);"
 onkeyup="textCounter(this.form.txtDes,this.form.count_0,200);"   onchange="textCounter(this.form.txtDes,this.form.count_0,200);"></asp:TextBox>
<input type="text" name="count_0" readonly value="200" />

 

4,ajax控制項實現驗證必輸項,與必選項

相信上面的這種彈出式提示驗證必輸項,大家都用過  AjaxControlToolkit  組件都知道會用,

 

  <asp:TextBox ID="txtName" runat="server" class="textbox"></asp:TextBox>
                <asp:RequiredFieldValidator ID="RequiredFieldValidator1" ControlToValidate="txtName"
                    runat="server" ErrorMessage="員工姓名不可為空" Display="None"></asp:RequiredFieldValidator>
                <ajx:ValidatorCalloutExtender ID="ValidatorCalloutExtender1" runat="server" TargetControlID="RequiredFieldValidator1"
                    WarningIconImageUrl="~/images/alert-small.gif" Width="150px">
                </ajx:ValidatorCalloutExtender>

 

 

 

查有時會出現這種情況,不知道大家相過如何?嗎

其實也可以   AjaxControlToolkit  組件中的 ValidatorCallOUtExtender  實現,但是如何驗證才能證他彈出呢,很簡單,我在

給dropdownList 賦值時給出的        

 drplist.Items.Add(new ListItem("請選擇", "0"));  的value  值為 0 

 

所以在驗證時,我們就可以根據他選擇的  selectedValue值來判斷驗證是否大於0

 <asp:DropDownList ID="drpOrgList" runat="server" CssClass="select">
 </asp:DropDownList>
<asp:RangeValidator ID="RangeValidator1" runat="server" Display="None" MinimumValue="1"   //注意這裡minimumvalue值,因為我第一項是請選擇..的value 為0 所以這裡至少要大於0
MaximumValue="10000" //這裡給出的10000,你可以隨便給,10000已經足夠用了
ControlToValidate="drpOrgList" ErrorMessage="組織機構為必選項" Type="Integer"></asp:RangeValidator>

                <ajx:ValidatorCalloutExtender ID="ValidatorCalloutExtender7" runat="server" TargetControlID="RangeValidator1"
                    WarningIconImageUrl="~/images/alert-small.gif" Width="150px">
                </ajx:ValidatorCalloutExtender>

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.