c#常用编程方法.docx
《c#常用编程方法.docx》由会员分享,可在线阅读,更多相关《c#常用编程方法.docx(27页珍藏版)》请在冰豆网上搜索。
![c#常用编程方法.docx](https://file1.bdocx.com/fileroot1/2023-2/5/3766c8bb-71ca-4b37-8588-ce3f07c17cdb/3766c8bb-71ca-4b37-8588-ce3f07c17cdb1.gif)
c#常用编程方法
1.将字符串NoList以','作为标记转换为字符串数组,用string[]arrList=NoList.Split(',')
2.关掉打开的当前窗口:
publicstaticvoidCloseWindow(Pagepage)
{
stringstrScript="\n"+
"window.close();\n"+
"\n";
page.Response.Write(strScript);
}
3.判断字符串是否为空:
string.IsNullOrEmpty(this.str);
4.ViewState用法
if(ViewState["OperationType"]!
=null)
{
return(string)ViewState["OperationType"];
}
5.this.Page.RegisterStartupScript("note","window.alert('保存成功!
');window.document.URL='Supervise.aspx';");
6.Session能够进行页面之间的传值
如test1.aspx的页面类中付值Session["DirectoryName"]=aa[0].ToString();当页面有test1.aspx跳转到test2.aspx后在test2.cs中可以通过这样的方法取值
if(Session[DirectoryName]!
=Null)
{
stringtemp=Session[DirectoryName];
}
7.另外一种页面间传值的方法是在test1.cs中this.Response.Redirect("test2.aspx?
id=6");
然后再test2.cs中通过这样的方法来取得该id
if(this.Request.QueryString["id"]==null)
{
stringID=this.Request.QueryString["AutoNo"].ToString().Trim();
}6,7两种方法在编程中会经常用到的
8.在同一个页面之间不同函数间传值时ViewState的用处也很大
付值:
ViewState["OperationType"]=1;
调用:
if(ViewState["OperationType"]!
=null)
{
returnConvert.ToString(ViewState["OperationType"]);
}
9.对于用户从界面输入的信息,要注意进行字符校验,然后进行程序处理
一般采用这种方式
if(!
this.CheckInput())
{
//处理过程
}
10.类型转换:
int.ParseConvert.ToString()Convert.ToDateTime等等
11.编写程序时注意随时在不太好理解的地方加上注释,对一些常用的函数要做成公用的函数以便调用
12.为界面按钮添加事件
this.BtnDel.Attributes.Add("onclick","returnconfirm('确认删除?
')");
13.有时候希望数据直接绑定到调用时定义的表dtTable,则采用out来进行数据回传,调用函数:
GetDataTableFromID(id,outdtTable)
被调用函数:
GetDataTableFromID(intid,outDataTabledrReturn)
14.设置字符串形式如果data1为string型,data2位int型,data3为DateTime型,则按如下方式来写
string.Format("输出的三个数字为:
'{0}',{1},'{2}'",data1,data2,data3),后面的数据data1,data2,data3将会代替{}中的内容输出。
15.设置一个实体类的属性:
privateintm_intAutoID;
publicintAutoID
{
get
{
returnm_intAutoID;
}
set
{
m_intAutoID=value;
}
}
16.ArrayList的使用方法:
ArrayList是一种动态数组,下面给出一个简单的例子:
ArrayListList=newArrayList();
for(inti=0;i<10;i++)
List.Add(i);
List.RemoveAt(5);
for(inti=0;i<3;i++)
List.Add(i+20);
Int32[]values=(Int32[])List.ToArray(typeof(Int32));
17.GridView中队LinkButton模版列的操作:
前台界面
TemplateColumnHeaderText="操作">
LinkButtonid="lnbView"CommandName="View"CausesValidation="False"Runat="server">查看
LinkButton>
LinkButtonid="lnbErase"CommandName="Erase"CausesValidation="False"Runat="server">删除
LinkButton>
TemplateColumn>
后台代码的处理部分
protectedvoiddrgDisplay_ItemCommand(objectsource,System.Web.UI.WebControls.DataGridCommandEventArgse)
{
switch(e.CommandName)
{
case"View":
//处理部分
break;
case"Erase":
//处理部分
break;
}
}
18.获得一个随机数:
stringtemp;
temp=newRandom().Next(10000,99999).ToString();
19.在html界面定义一个javascript函数,然后在服务器端调用该函数
html界面:
functioncwin(strDepart)
{
vara=strDepart;
varmikecatstr=window.ShowModalDialog('../../UserControl/UcSelectPerson.aspx',a,'dialogHeight:
500px;dialogWidth:
585px');
//处理部分
}
后台调用代码:
stringa="343";
this.ImaBu.Attributes.Add("onclick","cwin("+a+")");
20.一般在后台弹出提示框的写法:
Response.write()
也可以专门做一个提示函数放到公用方法中,然后在前台进行调用就可以了
函数:
(假设这个函数在Share类中)
publicstaticvoidPromptMessage(Pagepage,stringstrMessage)
{
StringBuildersb=newStringBuilder("window.");
sb.Append("alert('");
sb.Append(StringUtility.HtmlMsgStringFormatFix(strMessage));
sb.Append("')");
sb.Append("");
if(!
page.ClientScript.IsClientScriptBlockRegistered("display"))
{
page.ClientScript.RegisterStartupScript(page.GetType(),"display",sb.ToString());
}
}
后台程序调用
Share.PromptMessage(this.Page,"联系人手机号不能为空!
");
21.用javascript脚本输出界面的一个单元格,其中有小时,分钟的选择的两个下拉选择框
tableDate=mainIFrame.document.createElement("TABLE");
_TR=tableDate.insertRow();
_TD=_TR.insertCell();
_TD.height=1;
_TD.bgColor="black";
_TR=tableDate.insertRow();
_TD=_TR.insertCell();
_TD.innerHTML="0pxsolid;width:
100%'>"
+"
时间: | "+"
点 | "+"
| "+"分"
+"
";
22.在服务器后台写script脚本,打开一个新页面
Share.OpenWindow(this,"ExportToExcel.aspx?
DepartmentNo="+DepartNo)
在Share中的OpenWindow函数:
publicstaticvoidOpenWindow(Pagepage,stringstrUrl)
{
stringstrScript;
strScript="";
strScript+="varintHeight=600;";
strScript+="varintWidth=window.screen.width-150;";
strScript+="varstrFeature='height='+intHeight+',width='+intWidth+',left=80,toolbar=no,status=yes,menubar=yes,location=yes,resizable=yes,scrollbars=yes';";
strUrl="window.open('"+strUrl+"','_blank',strFeature,true);";
strScript+=strUrl;
strScript+="";
if(!
page.ClientScript.IsStartupScriptRegistered("windowOpen"))
page.ClientScript.RegisterStartupScript(page.GetType(),"windowOpen",strScript);
}
23.GridView的数据绑定
前台html:
TemplateFieldHeaderText="标题">
HyperLinkID="HyperLinkTitle"runat="server"Text='<%#Eval("Title")%>'CssClass="link3">
HyperLink>
TemplateField>
TemplateFieldHeaderText="时间">
LabelID="Label1"runat="server"Text='<%#Eval("AddTime","{0:
yyyy-MM-ddHH:
mm}")%>'>
Label>
TemplateField>
TemplateFieldHeaderText="信息类别">
LabelID="Label2"runat="server"Text='<%#htTypeId[Eval("HotLineTypeID")]%>'>
Label>
TemplateField>
对于Text='<%#Eval("Title")这种格式,当指定GridView绑定的数据源后,会自动在界面上绑定出Title字段的数据
对于Text='<%#htTypeId[Eval("HotLineTypeID")]%>'则需要在后台程序中添加这样的程序
publicHashtablehtTypeId
{
get
{
if(ViewState["htTypeId"]!
=null)
{
return(Hashtable)ViewState["htTypeId"];
}
else
{
returnnull;
}
}
set
{
ViewState["htTypeId"]=value;
}
}
将返回的值进行绑定
24.关于用户控件
在页面中重复出现较多的模块,我们可以把它做成用户控件,比如网站的头尾模块。
这样我们在每个页面需要添加头尾模块时只需要
将这个控件拖入网页中即可,用户控件以.ascx结尾。
25.自定义控件,对于一些功能模块,如果使用频繁,我们也可以把它做成一个控件,比如日期控件(在论坛上已提供下载)需要使用时直接从面板中拖入即可,一般是建一个类库,
调试完成后,编译成.dll文件,在工具箱中点击选择项,将该dll文件添加进取,就可以像普通TextBox一样去使用它了。
26.前台用脚本编写dropDownList的onchange事件,后台编写控件的触发脚本
drpType.Attributes.Add("onchange",changeType();");
前台:
functionchangeType()
{
if(document.all.drpYwlb.value!
="")
{
if(document.all.drpYwlb.value!
="Select")
{
eval("document.all.querycondition"+document.all.drpYwlb.value+".style.display=''")
}
}
else
{
for(iii=1;iii<5;iii++)
{
eval("document.all.querycondition"+iii+".style.display='none'");
}
}
}
27.GridView中如何对其所绑定的模版列数据进行操作
前台:
TemplateFieldHeaderText="序号">
LabelID="lblIndex"runat="server">Label
Label>
TemplateField>
咱们在后台对lblIndex这个Label进行处理
protectedvoidgvPeople_RowDataBound(objectsender,GridViewRowEventArge)
{
if(e.Row.RowType==DataControlRowType.DataRow)
{
LabellblIndex;
lblIndex=(Label)e.Row.Cell[1].FindControl("lblIndex");
lblIndex.Text=Convert.ToString
(2);
}
}
28.有些数据字段在程序控制中一般以1,2,3,4..等等进行判断,但是为了增强程序的易读性,需要使用enum将其所代表的意思表达出来,
可以单独做一个类来实现这个功能
如:
namespaceenumDemo
{
publicenumRightEnum
{
//组,用户,角色维护
GroupEdit=1,
//功能项维护
FunctionEdit=2,
//权限点维护
RightEdit=3,
}
}
引用时,直接用RightEnum.GroupEdit即代表1,这样会使程序更清晰。
29.弹出页返回时对上级页界面控件的编程
dialogArguments.document.all.txtOriginRecord.value="none";
30.在单元格中检索按钮的onmouseoveronmouseou