ASP.NET程序中常用编程代码(二)

news/2024/7/6 5:19:33
 

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绑定表达式:

1) 普通的绑定表达式
<%# DataBinder.Eval(Container.DataItem, "ContactName") %>

2) 文本+绑定表达式


3) 同时带有显示格式的绑定表达式
<%# DataBinder.Eval(Container,"DataItem.USActiveDate","{0:yyyy-MM-dd}") %>

4) 结合绑定表达式和模态框

其中:后台代码文件中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、加入客户端验证控件

//验证空值

//验证网址
http://([/w-]+/.)+[/w-]+(/[/w- ./?%&=]*)?">

//验证邮箱

//验证邮编

//显示错误信息

7、枚举类型的使用

1) 定义:
public enum UserTypeEnum:byte
{
 ///


 /// 个人用户
 ///

 Individual = 0,
       
 ///
 /// 单位用户
 ///

 Corporation = 1
}

2) 在代码中的使用方法:
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 实用工具:

1、

  • 单击“开始”,然后单击“运行”。
  • 在“打开”框中,键入 cmd,然后按 Enter 键。
  • 在命令提示符下键入以下命令,然后按 Enter 键:
     "%windir%/Microsoft.NET/Framework/版本/aspnet_regiis.exe" -i

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("");
    注:此处此控件的ID号为固定值。

12、如何在IIS上注册aspnet

aspnet_regIIS -i

13、Server对象

1) Server.Transfer: 转到另一页面,但没有向浏览器发送任何信息,当用户刷新时,将刷新的是重定向之前的那一页。
2) Server.Execute: 执行另一页面的请求,执行之后返回原来的页面。

14、禁用请求验证的方法

请求验证过程检测到有潜在危险的客户端输入值,对请求的处理已经中止。该值可能指示危及应用程序安全的尝试,如跨站点的脚本攻击。通过在 Page 指令或 配置节中设置 validateRequest=false 可以禁用请求验证。但是,在这种情况下,强烈建议应用程序显式检查所有输入。

如:
 





http://www.niftyadmin.cn/n/3652698.html

相关文章

记录k8s 的dashboard 管理平台操作-----------创建删除kubectl delete

kubectl create 属于Imperative command&#xff08;祈使式命令&#xff09;&#xff0c;它明确告诉kubectl要创建某个资源或对象&#xff1b; kubectl apply 是Declarative command&#xff08;声明式命令&#xff09;&#xff0c;apply并不告诉kubectl具体做什么&#xff0c…

ASP.NET 2.0 中收集的小功能点

1.asp.net 2.0中的MaxPageStateFieldLength 属性 在asp.net 2.0中&#xff0c;可以强制对viewstate进行分段传输了&#xff0c;使用的是Page.MaxPageStateFieldLength 属性&#xff0c;可以设置viewstate中&#xff0c;每个页面状态字段的最大字节数。格式如下&#xff0c;要在…

通俗易懂分布式版本控制 Git

分布式版本控制 Git一、版本控制1、版本控制2、版本控制分类1、本地版本控制2、集中版本控制&#xff08;代表SVN&#xff09;3、分布式版本控制&#xff08;代表Git&#xff09;4、Git与SVN最主要区别二、Git环境配置1、下载安装Git2、启动Git3、基本的Linux命令4、Git的配置三…

Kubectl 命令(命令式 与 声明式)

Kubectl 命令&#xff08;命令式 与 声明式&#xff09;一、资源管理办法1.1 陈述式资源管理方法1.2 声明式资源管理办法二、基本信息查看2.1 查看master 节点状态2.2 查看命令空间2.3 查看default命名空间的所有资源2.4 创建、删除命名空间app2.5 在命名空间创建deployment2.6…

ASP.NET 2.0使用Web Part创建应用程序之二(共二)

http://ghd258.cnblogs.com/archive/2005/11/22/282367.html

ASP.NET 2.0构建动态导航的Web应用程序(TreeView和Menu )

TreeView 控件关键属性CheckedNodes 声明被选择的单个或者多个节点ExpandDepth 声明TreeView控件展开的深度Nodes TreeNodeCollection 类型的节点集合SelectedNode 当前被选择的节点ShowChe…

Pod 详解及容器分类

POD 详解一、Pod 基础概念1.1 介绍1.2 Pod 使用方式1.3 工作方式1.4 基础容器 pause1.5 Pod 的分类1.6 Pod 的组成二、Pod 容器的分类2.1 pause 基础容器&#xff08;infrastructure container&#xff09;2.2 init 初始化容器&#xff08;initcontainers)2.3 业务容器&#xf…

使用PHPExcel生成和读取Excel文件

以前生成Excel文件时&#xff0c;都是输出成CSV文件。CSV文件自己用还可以&#xff0c;如果给客服&#xff0c;市场人员 使用也显得太简陋了。现在有了PHPExcel&#xff0c;一切问题都解决了。PHPExcel支持Excel97和Excel2007&#xff0c;可以在Excel文件中加入图片&#xff0c…