轉自: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>