知识小记(C#)

1)创建Dataset对象的副本,以至于对象出现变化时不会影响副本的数据。DataTable Tdb = NokiaDataset.Tables["Nokia_Relation_DnAndHawb"].Copy();

2)给GridView的某行加颜色,在RowDataBound事件中

protected void DG_RowDataBound(object sender, GridViewRowEventArgs e) ...{ if (e.Row.RowType == DataControlRowType.DataRow) ...{ int num = e.Row.Cells.Count; if (e.Row.Cells[e.Row.Cells.Count - 2].Text.ToUpper().Trim() == "ERROR" ) ...{ for (int i = 0; i < num; i++) ...{ e.Row.Cells[i].ForeColor = Color.Red; } } } }

3)根据XML文档去构建表结构

public static DataSet CreateDataTable() ...{ DataSet ds = new DataSet(); try ...{ XmlDocument xmldoc = new XmlDocument(); string Filepath = AppDomain.CurrentDomain.BaseDirectory + "cb/Script/ModsField.xml"; xmldoc.Load(Filepath); XmlNodeList topM = xmldoc.DocumentElement.ChildNodes; foreach (XmlElement element in topM) ...{ DataTable NewTable = new DataTable(element.Name.ToLower()); NewTable.Columns.Add("BOOKING_NO", typeof(string)); NewTable.Columns.Add("SO_NO", typeof(string)); XmlNodeList nodelist = element.ChildNodes; if (nodelist.Count > 0) ...{ int i = 0; foreach (XmlElement el in nodelist)//读元素值 ...{ i = i + 1; NewTable.Columns.Add(el.Attributes["name"].Value, typeof(string)); } } ds.Tables.Add(NewTable); } } catch (Exception ex) ...{ throw ex; } return ds; }

 

4)Context.Items["MyObject"]=主要用法 1、在两个表单之间传递数据
Context.Items["WebForm1List"]=list; Server.Transfer("WebForm2.aspx");
 对于WebForm2
ArrayListlist=Context.Items["WebForm1List"]asArrayList;

5)控件绑定弹出窗体页面

btmBatchItem.Attributes.Add("onclick", "javascript: return confirm('Are you sure to batch submit')");

6)App_Themes目录下放css样式

7)项目文件多的时候,为了能够使文件名称的唯一性,尽量在文件头加上namespace

namespace STS.PREReport ...{ public partial class New_Report_BizReport : System.Web.UI.Page ...{ } }

 8)GridView中的CheckBox被选中时,数据行背景用高亮颜色显示,取消时,恢复原状。

function changeRowBgColor(obj) { var objRow = obj.parentElement.parentElement; if (obj.checked) { objRow.style.backgroundColor = "#ffdab9"; } else { objRow.style.backgroundColor = ""; } }

 9)根据"SHAPT00004013",在后面每次加一生成一个单号,前面补0

string str8 = Convert.ToString(Convert.ToInt32(ORDERNO.Substring(5, 8)) + 1); if (str8.Length < 8) str8 = "00000000".Substring(0, 8 - str8.Length) + str8;

 10)hastable转化为类emp1是hastable类,转化为gowuche类

gowuche g = (gowuche)emp1[empValue];

 

11)今天有个同事出现很怪的问题,程序在本地运行没有问题,发布到服务器上就有问题,后来发现原来程序里面他定义的变量名称和控件名称重叠了。

12)System.Web.UI.WebControls.ContentPlaceHolder 类

Defines a region for content in an ASP.NET master page.

13)

View State的作用和实现方式
简答:View State是微软实现的缓存机制。
有点类似以前的表单中的隐藏控件。当 asp.net 执行某个页面时,该页面上的 viewstate 值和所有控件将被收集并格式化成一个编码字符串,然后被分配给隐藏窗体字段的值属性(即 <input type=hidden>)。由于隐藏窗体字段是发送到客户端的页面的一部分,所以 viewstate 值被临时存储在客户端的浏览器中。如果客户端选择将该页面回传给服务器,则 viewstate 字符串也将被回传。
ViewState 在 ASP.NET 中有个重要的角色。如果使用恰当,它能够简化页面开发,改进用户与站点的交互。如果置之不理,它能够显著增加站点响应大小,在连接速度慢的情况下,使您的响应时间更加缓慢。
ViewState 为 ASP.NET 开发人员解决了一个特定问题 — 保留服务器端不形成元素的控件的状态。
ViewState 完成基于控件的编程模型。如果没有 ViewState ,一些控件(如文本框和下拉列表)在 POST 请求期间保持状态,而其他控件不保持,使用这些状态各异的控件记录一些特殊的情况是令人沮丧的体验。使用 ViewState ,开发人员能够专注于编程模型和用户界面,而不用担心状态保持。还能对 ViewState 进行哈希或加密,以防止用户篡改或解码。
用 ASP.NET 2.0 可以改进ViewState 加快网站速度,
保存一些变量或其他对象,当页面刷新后可取出所保存的数据。
ViewState("XXXX")=对象/变量.....
XXXXXXX=ViewState("XXXX").ToString()
总结:页面的变量在需要保存是可以设置,还需要查一下public static string 类型的区别

14)字符串截取固定长度的方法

解决了汉字与英文字节不一样导致直接截取到的长
度不一样的问题,

15).net ref 的用法

使用 ref 是传的引用,如果在此方法里面更改参数的值,那此参数对应的变量的值也会被更改。

16)        string b = s;
            string c = String.Intern(s);

可以用Intern()函数来进行字符串的驻留(如果有这样的值存在)。

17)C#里的foreach

C#语言从VB中吸取了一个非常实用的foreach语句。对所有支持IEnumerable接口的类的实例,foreach语句使用统一的接口遍历其子 项,使得以前冗长的for循环中繁琐的薄记工作完全由编译器自动完成。支持IEnumerable接口的类通常用一个内嵌类实现IEnumerator接 口,并通过IEnumerable.GetEnumerator函数,允许类的使用者如foreach语句完成遍历工作。

18)通过查询条件从DataTable中查询出要的记录

DataRow[] VSelectProject;

DataTable APrivilege

VSelectProject = APrivilege.Select(string.Format("privilege_key = '{0}'", VPrivilegeKey));

19)lock 语句(C# 参考)

lock 关键字将语句块标记为临界区,方法是获取给定对象的互斥锁,执行语句,然后释放该锁。此语句的形式如下:

Object thisLock = new Object(); lock (thisLock) ...{ // Critical code section }

 

lock 确保当一个线程位于代码的临界区时,另一个线程不进入临界区。如果其他线程试图进入锁定的代码,则它将一直等待(即被阻止),直到该对象被释放。

20)禁止页面缓存

Response.Cache.SetCacheability(HttpCacheability.NoCache);

21)网格里面的数据太长,鼠标放在上面可以显示出所有的数据,下面的框显示出‘666666666666666666666666666’的数据

//Origin/Copy var newCol2 = newRow.insertCell(); newCol2.className = "td_one"; newCol2.innerHTML = "<input type='text' onblur='CheckListOrgCopy(this)' style='width:100%;border:0px' title='6666666666666666666666666666' value='" + col2 + "'>";

22)如何用VS2005制作Web安装程序

http://blog.csdn.net/cqfeng/archive/2006/02/17/601506.aspx 

 

23)淘宝网开放平台API

http://open.taobao.com/dev/index.php/%E6%B7%98%E5%AE%9DAPI%E6%A0%87%E5%87%86%E7%A4%BA%E4%BE%8B#C.23.E8.AE.BF.E9.97.AE.E4.B8.80.E4.B8.AAAPI.E6.9C.8D.E5.8A.A1

你可能感兴趣的:(知识小记(C#))