ASP.NET常用编程代码(二)
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:
- 单击“开始”,然后单击“运行”。
- 在“打开”框中,键入 cmd,然后按 Enter 键。
- 在命令提示符下键入以下命令,然后按 Enter
键:
"%windir%/Microsoft.NET/Framework/版本/aspnet_regiis.exe" -i
Step 2:
在此路径中,版本代表在服务器上安装的 .NET Framework 的版本号。键入此命令时,必须将此占位符替换为实际版本号。
- 注册 Aspnet_isapi.dll;
- 单击“开始”,然后单击“运行”。
- 在“打开”文本框中,键入以下内容,然后按 Enter 键:
regsvr32 %windir%/Microsoft.NET/Framework/版本/aspnet_isapi.dll
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>
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。