1.綁定在DataList中的DropDownList
PRivate void dlistOrder_EditCommand(object source, System.Web.UI.WebControls.DataListCommandEventArgs e)
{
// 綁定訂單狀態
for(int i=0;i<((DropDownList)dlistOrder.Items[e.Item.ItemIndex].FindControl("ddlFlag")).Items.Count;i++)
{
if(((DropDownList)dlistOrder.Items[e.Item.ItemIndex].FindControl("ddlFlag")).Items[i].Value == dv.Table.Rows[0]["OrStatus"].ToString())
{
((DropDownList)dlistOrder.Items[e.Item.ItemIndex].FindControl("ddlFlag")).Items[i].Selected = true;
}
}
}
2.另一種綁定方式
// 綁定送貨方式
DataView shipType = OrderSO.GetShipTypeList();
DropDownList ddlShipType = (DropDownList)dlistOrder.Items[e.Item.ItemIndex].FindControl("ddlShipType");
ddlShipType.DataSource = shipType;
ddlShipType.DataTextField = "StName";
ddlShipType.DataValueField = "StId";
ddlShipType.DataBind();
ddlShipType.SelectedIndex = ddlShipType.Items.IndexOf(ddlShipType.Items.FindByValue(dv.Table.Rows[0]["OrShipType"].ToString()));
3.在編輯嵌套在Datalist內的Datagrid某條記錄時定位它所在的Datalist行
protected void MyList_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
HtmlInputHidden odid = (HtmlInputHidden) e.Item.Cells[0].FindControl("odid");
DataListItem item = (DataListItem)e.Item.Parent.Parent.Parent;
DropDownList flag = (DropDownList)item.FindControl("ddlFlag");
if(flag.SelectedIndex == 0)
{
if(e.CommandName == "Delete")
{
int iOdId = Convert.ToInt32(odid.Value);
// 刪除訂單明細方法
OrderSO.DeleteOrderDetail(iOdId);
}
}
else
{
GDCIC.Framework.Utility.MessageBox(this,"modifyError","經過確認的訂單不能再修改!!");
return;
}
dlistOrder.EditItemIndex = -1;
BindData();
}
}
4.DataBinding綁定表達式
普通的綁定表達式:
<%# DataBinder.Eval(Container.DataItem, "ContactName") %>
文本+綁定表達式:
<asp:Label id=lblDate runat="server" Text='<%# "[" + DataBinder.Eval(Container, "DataItem.NewsCreatedate") + "]" %>' ForeColor="Red"></asp:Label>
同時帶有顯示格式的綁定表達式:
<%# DataBinder.Eval(Container,"DataItem.USActiveDate","{0:yyyy-MM-dd}") %>
結合綁定表達式和模態框:
<A href='<%# ShowModalWin(Convert.ToString(DataBinder.Eval(Container.DataItem, "PictureImage")),Convert.ToString(DataBinder.Eval(Container.DataItem, "DetailID")),Convert.ToString(DataBinder.Eval(Container.DataItem, "PictureID")))%>'>
其中:后臺代碼文件中ShowModalWin()方法的定義如下:
protected string ShowModalWin(string PictureImage,string DetailID,string PictureID)
{
return " window.showModalDialog(/"Customers/ShowPictureInfo.aspx?pid="+PictureImage+"&did="+DetailID+"&id="+PictureID+"/",/"/",/"dialogHeight:320px;dialogWidth:480px;center:yes;help:no;status:no;scroll:no/");";
}
或者將參數提取出來單獨定義成一變量:
const string WINDOWPARAMSTRING="dialogWidth:540px;dialogHeight:420px;help:0;status:0;resizeable:1;scroll:no";
Page.RegisterStartupScript("functionscript","<script language='javascript'>window.showModalDialog('EditUserService.aspx?URID="+iURID+"','','"+WINDOWPARAMSTRING+"')</script>");
5.在已有的數據集中添加一個新行
int iURID=int.Parse(session[Globals.USER_ID_SESSION_NAME].ToString());
DataSet myds=UserSO.GetMapUserServiceToServiceList(iURID);
// 增加一個郵件行
DataRow mydr = myds.Tables[0].NewRow();
mydr["SVHref"] = "http://211.155.23.77";
mydr["SVName"] = "政務郵箱";
mydr["USEndDate"] = System.DateTime.Now.AddDays(1);
myds.Tables[0].Rows.Add(mydr);
DataView mydv=myds.Tables[0].DefaultView;
if(myds.Tables[0].Rows.Count!=0)
{
mydv.RowFilter=" USEndDate>'"+System.DateTime.Now+"'"; // 沒過期
dgUserService.Visible=true;
dgUserService.DataSource =mydv;
try
{
dgUserService.DataBind();
}
catch
{
dgUserService.CurrentPageIndex =dgUserService.PageCount -1;
dgUserService.DataBind();
}
}
else
{
dgUserService.Visible=false;
}
6.加入客戶端驗證控件
// 驗證空值
<asp:requiredfieldvalidator id="valUsername" runat="server" controltovalidate="txtUsername" display="None" errormessage="請輸入用戶名 !!"></asp:requiredfieldvalidator>
// 驗證網址
<asp:regularexpressionvalidator id="rev" runat="server" ErrorMessage="公司網址不合法[要有http://] !" Display="None" ControlToValidate="txtCPWebsite" ValidationExpression="http://([/w-]+/.)+[/w-]+(/[/w- ./?%&=]*)?"></asp:regularexpressionvalidator>
// 驗證郵箱
<asp:RequiredFieldValidator id="rfv" runat="server" ControlToValidate="txtCPEmail" Display="None" ErrorMessage="請輸入電子郵箱 !!"></asp:RequiredFieldValidator>
// 驗證郵編
<asp:regularexpressionvalidator id="rev5" runat="server" ErrorMessage="郵政編碼不合法 !" Display="None" ControlToValidate="txtCPPostCode" ValidationExpression="/d{6}"></asp:regularexpressionvalidator>
// 顯示錯誤信息
<asp:validationsummary id="vs" runat="server" ShowSummary="False" ShowMessageBox="True"></asp:validationsummary>
7.枚舉類型的使用
定義:
public enum UserTypeEnum:byte
{
/// <summary>
/// 個人用戶
/// </summary>
Individual = 0,
/// <summary>
/// 單位用戶
/// </summary>
Corporation = 1
}
在代碼中的使用方法:
UserTypeEnum ut = UserTypeEnum.Corporation;
GDCIC.Entities.UserVO userVO = GDCIC.Facade.UserSO.GetUserVO(urid);
ut = (UserTypeEnum)Enum.Parse(UserTypeEnum.Corporation.GetType(),userVO.URUserType);
if (ut == UserTypeEnum.Corporation)
{
... ...
}
// 直接獲得其代表的值的方法
Response.Write("枚舉值為:"+Convert.ToInt32(UserTypeEnum.Individual));
8.驗證用戶名必須以字母打頭且不能含有中文
String sUsername = txtUsername.Text.Trim();
if(!Regex.IsMatch(sUsername, "^[A-Za-z].*"))
{
Utility.MessageBox(this,"nameFormatError","用戶名要以字母開頭, 且不要用中文名稱 !!");
return;
}
9.如何在刪除并重新安裝IIS之后修復IIS映射
運行 Aspnet_regiis.exe 實用工具:
Step 1:
Step 2:
在此路徑中,版本代表在服務器上安裝的 .NET Framework 的版本號。鍵入此命令時,必須將此占位符替換為實際版本號。
Regsvr32 將返回注冊結果。
10.下載文件的方法
Response.AppendHeader("content-disposition", "attachment; filename=" + Request.Params("link").ToString)
Response.ContentType = Request.Params("contenttype").ToString
Response.WriteFile(strLink)
Response.End()
可從數據中讀出文件名稱,直接指定到服務器的路徑下即可,所以要求上傳文件時`需求指定文件在服務器上保存的路徑。
對于此方法,需要重定向到一個頁面,此頁面負責處理文件的寫入。參數contenttype可以選擇寫或不寫,在明確的情況下,最好寫入。
但appendheader必須寫明,最后調用WriteFile將文件輸出,用到的路徑是相對路徑。
11.如何在動態加載控件時,讓客戶端腳本起作用
event.srcElement,可以得到事件引發者對象。對于要求引用多個對象時,可以用一變量將控件值保存起來。
方法如下:
Response.Write("<input type=/"hidden/" id=/"jjj/" value="+this.ClientID+">");
注:此處此控件的ID號為固定值。
12.如何在IIS上注冊aspnet
aspnet_regIIS -i
13.Server對象
1) Server.Transfer: 轉到另一頁面,但沒有向瀏覽器發送任何信息,當用戶刷新時,將刷新的是重定向之前的那一頁。
2) Server.Execute: 執行另一頁面的請求,執行之后返回原來的頁面。
14.禁用請求驗證的方法
請求驗證過程檢測到有潛在危險的客戶端輸入值,對請求的處理已經中止。該值可能指示危及應用程序安全的嘗試,如跨站點的腳本攻擊。通過在 Page 指令或 配置節中設置 validateRequest=false 可以禁用請求驗證。但是,在這種情況下,強烈建議應用程序顯式檢查所有輸入。
如:
<system.web>
<pages ValidateRequest="false" />
</system.web>
|
新聞熱點
疑難解答