c#编程经验

 1. 单引号表示单个字符,双引号表示多个字符
2. Response.Write("<script language=javascript>window.alert('" + ls_ts+ "');</script>"); //显示提示框
   confirm()  //可以出来两个按钮   this.deleteButton.Attributes.Add("onClick", "return ConfirmDeletion();");
   prompt()      //可以弹出输入框
   var aa = window.document.getElementsByName.getElementById("Button1"); //获取网页的元素_客户端控件
   var ksrq = document.getElementById('<%= TextBox_ksrq.ClientID %>');   //获取网页的元素_服务端控件
   //UpdatePanel 提示
   ScriptManager.RegisterStartupScript(theUpdatePanel, typeof(UpdatePanel), "scriptName", "alert('Time updated!')", true);
2. asp.net 动态Master页面
     protected void Page_PreInit(object sender, EventArgs e)
    {

    }

3. Response.Write("<script language=javascript>window.open('test.aspx');</script>"); //打开新窗口
   Response.Write("<script language=javascript>location.href('test.aspx');</script>"); //打开新窗口
   Response.Write("<scriptlanguage=javascript>window.open('WebForm2.aspx','_self','');</script>");
   Response.Write("<script language=javascript>window.open('" + ls_ym + "','contents');</script>"); //打开新窗口
   Response.Write("<script language=javascript>window.close();</script>"); //关闭新窗口
 窗口特性 (即是打开的浏览器的样子) 的关键字、关键字值可以参考下表: (逗号分割)
中午或者晚上 我有时间
是否显示工具栏:toolbar[=yes|no]|[=1|0]
是否显示地址栏:location[=yes|no]|[=1|0]
是否显示前进、后退、刷新按钮:directories[=yes|no]|[=1|0]
是否显示状态栏:status[=yes|no]|[=1|0]
是否显示菜单栏:menubar[=yes|no]|[=1|0]
是否显示滚动条:scrollbars[=yes|no]|[=1|0]
用户是否可以改变窗口的大小:resizable[=yes|no]|[=1|0]
是否在新窗口中保留浏览器的浏览历史纪录:copyhistory[=yes|no]|[=1|0]
窗口的宽度 (单位为像素):width=pixels
窗口的高度 (单位为像素):height=pixels

4. 窗口第一次打开
   if (!IsPostBack)  {}
5. 实例化类
   Class1 sas=new Class1();  string is_conn ; is_conn  = sas.Class2();
6. 在某个单词地后面按住alt 键,再按向右地键 字母中的小写(单词首个字母)会变成大写字母 
7. SqlConnection my_sql = new SqlConnection(connectstring);
   SqlConnection 是区分大小写的
8. {}的用法 //每个语句块都要用{}来表示

9. 如何分页
 
    在事件MyDataGrid_PageIndexChanged 中
     MyDataGrid.CurrentPageIndex = e.NewPageIndex; //
 Button1_Click(this,new System.EventArgs()); //调用另外一个按钮的代码

10.  label 控件在赋值的时候,可以形成多行

11. 在类里面如何显示提示框Response.Write("<script language=javascript>window.alert('000');</script>"); //显示提示框
   
     需要引用:  public class wz_DropDownList  :System.Web.UI.Page

12. 对字符串去除空格

     ls_str.Trim()

13.  和(and)  用 & 表示,  或(or)  用 |表示

14. 对字符串判断空值 ls_str == null   不等于 ls_str != null

15. 如何保存全局变量

   通过用Session   对象  例如: Session["aaa"] = "333"
   if (Session["is_str"] == null)
    {
                  Session["is_str"] = 0;
    }

16. 获取web的相对路径:  aaa = Request.ApplicationPath;

17. 排序(在datagrid 中设置排序表达式  如;  s_bh ASC 或  s_bh  DESC )
 
18. 赋予excel 文件的权限

  开始->运行->"dcomcnfg"->在应用程序列表框中选择“Microsoft Excel 应用程序”->
“安全性”->选择“使用自定义访问权限”,点击“编辑”按钮
添加本地“ASPNET”用户,权限为“允许访问”
“安全性”->选择“使用自定义启动权限”,点击“编辑”按钮
添加本地“ASPNET”用户,权限为“允许访问”

如果还不行,就“使用自定义配置权限”,添加或修改相应用户的权限
///////////
最后,来看一下,如何调用客户端的Excel进行打印,就是让客户一点击"打印"的按钮,就可以自动打开客户端的Excel,将要打印的内容导入。要实现这样的效果,必须要求客户端的IE浏览器设置中,在其中的"安全-本地Intranet-自定义级别中",将"下载未签名ACTIVX"中设置为启动或提示。代码如下:
/////////


19. 导出到excel<web> (一种简单的方法)

    public void ExportToExcel(System.Web.UI.Control ctl)
  {
   bool CurrCtlVisible=ctl.Visible;
   ctl.Visible=true;        Response.AppendHeader("Content-Disposition","attachment;filename=Excel.xls"); 
   Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
   Response.ContentType = "application/ms-excel";
   ctl.Page.EnableViewState = false;
   System.IO.StringWriter tw = new System.IO.StringWriter();
   System.Web.UI.HtmlTextWriter hw = new HtmlTextWriter(tw);
   ctl.RenderControl(hw);
   Response.Write(tw.ToString());
   Response.End();
     ctl.Page.EnableViewState = true;
   ctl.Visible=CurrCtlVisible;
  }

      //有的时候,字符会变成数字,需要作一下处理

private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
  {
   if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
   {
    e.Item.Cells[1].Attributes.Add("style","vnd.ms-excel.numberformat:@");
    
   }


  }

20. 重定向(在本页面的位置上指向一个新的页面)

   Response.Redirect( "WebForm2.aspx?id=" + e.Item.Cells[0].Text );

21. datagrid 添加记录

    允许datagrid  显示页尾

   在模版列中的下面增加一个按钮,它的name = "一个值",在html 中,增加这个控件的属性
   enabled = '<%# islastpage() %>'
    再在islastpage() 函数中增加判断( 当前页 = 页的总数)
   在datagrid 的事件(ItemCommand)  中写关于点击按钮的操作


22. datagrid 的模版列的建立

    在datagrid 的ItemCreated 事件中写关于建立页面控件与模版中的控件关联的语法

23. pb的datawindow 在net 中的用法
    <连接>
    dbms = oledb,servername = "计算机名字",useid = sa,dbparameter =  PROVIDER='SQLOLEDB',PROVIDERSTRING='database=ywgl'
    <存盘>
   System.Data.SqlClient.SqlConnection theConnection = new               System.Data.SqlClient.SqlConnection();
   theConnection.ConnectionString = "Data Source=adserver;Initial Catalog=ywgl;User ID=sa;";
   theConnection.Open();
   Sybase.DataWindow.AdoTransaction SQLCA = new Sybase.DataWindow.AdoTransaction(theConnection,              "Isolation='RU'");
   SQLCA.BindConnection();
   SQLCA.Transaction = SQLCA.Connection.BeginTransaction(IsolationLevel.ReadUncommitted);
    dw_data.SetTransaction(SQLCA);
    dw_data.UpdateData(true, false);
    SQLCA.Transaction.Commit();
    dw_data.RestoreDataCache();
    dw_data.RestoreContext();
    dw_data.Retrieve();
    
24. 添加框架集

     <frameset cols="196,*" border="0" frameSpacing="0" frameBorder="0">
<frame name="main" src="" scrolling="no">
<frame name="contents" src="" scrolling="auto" frameBorder="yes">
</frameset>

25. 设置asp.net 的事务级别

    SqlTransaction ls_trans = is_connect.BeginTransaction(System.Data.IsolationLevel.ReadUncommitted);

26. JavaScript函数的定义
    <script language="JavaScript">
           function myfunction(){
               alert("这是JS脚本调用的函数");
             }
    </script>

27. 在asp.net 中动态调用JavaScript函数(删除)

         Button1.Attributes.Add("onClick", "return my_aaa()");
         Button1.Attributes.Add("onClick", "return  window.confirm('删除后不能恢复,真的要对订阅数据进行清理吗?')");

          ///////////////下面是JavaScript函数//return 很重要
  <script language="JavaScript">
                    function my_aaa(){return  window.confirm("ccc")} </script>

27.   确认框的出现
       Literal1.Text = "<script language=javascript>document.all.TextBox1.value=my_aaa();</script>";
       document.Form1.控件的id
       Literal1 是占位符,要出现在控件的后面(代码位置)


28. JavaScript函数 alert 的单引号的问题的解决:

   ls_sql = ls_sql + "<script language=javascript> window.alert(";
   ls_sql = ls_sql +'"';
   ls_sql = ls_sql + aaa;
   ls_sql = ls_sql +'"';
          ls_sql = ls_sql + " ); </script> ";

29. xml (从字符串中读入,导出到字符串)

   using System.Xml;
   using System.IO;
  
   ///读入

   string xmlText = "<newdatset><aaa><eee>004</eee></aaa></newdatset>";
       StringReader strReader = new StringReader(xmlText);
          
      XmlTextReader xtr = new XmlTextReader(strReader);

  

//   XmlTextReader xtr = new XmlTextReader(@"d:\bbb.xml");
            xtr.WhitespaceHandling = WhitespaceHandling.None;
   XmlDocument xd = new XmlDocument();
   xd.Load(xtr);

////导出

    string strReader11 = "";
  strReader11 = xd.OuterXml;

30.  日期控件(梅花雨)

    用记事本打开js文件,然后另存为时候用编码:utf-8即可!

   使用方法:  1. 添加引用: <script language="JavaScript" src="../js/date.js"></script>
              2. <input name="txt" id="rq_select" runat="server"><input type="button"                  value="setday"   onclick="setday(this,document.all.txt)">  //
                    将第二个添加到html的from中即可
  

31. 列名转换

    select  aaa as s_lm1 from aaa  //aaa为实际的列名,s_lm1 为虚拟的列名

32.    数据库记录导出到xml 文件
 
                        DataSet mydataset = new DataSet();
   SqlConnection myconnection = new SqlConnection();
   myconnection.ConnectionString = "server=adserver;database=ywgl;User ID=ad_dbo;password=ad_dbo";
   myconnection.Open();
   string  ls_sql ="select * from aaa";
   SqlDataAdapter mycommand = new SqlDataAdapter(ls_sql,myconnection);
   mycommand.Fill(mydataset,"aaa");
   //
   DataGrid1.DataSource = mydataset.Tables[0].DefaultView;
   DataGrid1.DataBind();
   mydataset.WriteXmlSchema(Server.MapPath("aaa.xsd"));

   mydataset.WriteXml(Server.MapPath("aaa.xml"),XmlWriteMode.IgnoreSchema);

33.   xml 文件内容更新数据库

34.   java 函数操作页面控件的属性

  document.all.TextBox1.value="sss"; (要把这句话放在控件的后面)  
  document.Form1.TextBox1.value="sss"; (要把这句话放在控件的后面)  
   
35. 定义程序入口点

    /// <summary>
  /// 应用程序的主入口点。
  /// </summary>
  [STAThread]
  static void Main()
  {
   Application.Run(new Form1());
  }


  36. 类型转换   (从字符串转成数字)

                    double aaa = 32.23;
   string sss = "22.22";
   aaa = double.Parse(sss);或者 aaa = Convert.ToDouble(sss);

37. asp.net 在什么地方调用出错地页面(统一)

    在web.config 的设置中

    <customErrors defaultRedirect="error.aspx"

    mode="On"
    />

38. 在.net 如何从一个页面调用另外一个页面的东西? ()

     通过在打开页面的时候,赋予一定的参数来实现(例如:)
     Response.Write("<script language=javascript>window.open('aaa.aspx?id=adsf&id2=qwefasdf');</script>");
     //
     在aaa.aspx的page_load的方法中:
      if(this.Request.QueryString["id2"] != null){Label1.Text = this.Request.QueryString["id2"];}
     //说明 : 首先检测参数是否存在? 如果存在,则对其进行操作

39. 关于databind

    在b/s 中datagrid 需要进行帮定  ; 在c/s 中 ,不需要进行帮定


41. 更新dataset

    在更新dataset 之前,要使用commandbuild  对象,因为适配器自己不会建立适当的sql语法

    SqlCommandBuilder  mycommandbuild = new SqlCommandBuilder(sqlDataAdapter1);//创建语法
    sqlDataAdapter1.Update(dataSet1);  //更新数据库
    dataSet1.AcceptChanges();   //消除dataset 的状态

42. 数据库连接

     如果用适配器,则不用调用连接对象的OPen方法

     如果直接用命令,则需要调用连接对象的open 和 close 方法

43. 弹出出错窗口

    Response.Write("<script language=javascript>window.open('../error.aspx','','toolbar=no,menubar=no,titlebar=no,directories=no,resizable=no,status=no,fullscreen=no,top=120,left=150,width=500,height=200');</script>"); //打开新窗口

44. 导出到excel (灵活赋值)
       //按钮语法
        Application.Lock();
          ExportToExcel   ls_l = new ExportToExcel();
          ls_l.CreateExcel();
 Application.UnLock();
       //要用到导出到excel 的类ExportToExcel   //在印务web 中有

45. 用户自定义控件

   
   首先在自定义控件中添加自己的属性或者方法
   public string mytext()
  {
   get
   {
    return TextBox1.Text.Trim ();
   }
   set
   {
               TextBox1.Text=value;
   }

  }

      //
      在主页面中的调用:  在页面的开始,声明变量protected WebUserControl1 WebUserControl11;
      //然后就可以使用了

46. 添加自定义控件
      this.FindControl("Form1").Controls.Add((WebUserControl1) this.LoadControl("WebUserControl1.ascx"));

47.  如何在自定义控件中修改主页面上的 控件的属性 (冒泡)
   
     1. Label lb = (Label)this.Page.FindControl("Label2");
     2. System.Web.UI.Control c = this.Parent.Parent.FindControl("Label2");
     使用1或者2都行  从用户控件找到承载它的页面
        (lb.Text = "asdfasdf"; 或者c.text = "df")

    c# 的写法
    this.FindForm(); (this代表用户控件)

48. 如何让菜单(框架)显示或者隐藏

   //search 代表框架集  (下面两个的集合)
   if (LinkButton2.Text == "显示菜单")
  {
    LinkButton2.Text = "隐藏菜单";
    Response.Write("<script language=javascript>parent.search.cols='190,*';</script>");

  }
   else
   {
    LinkButton2.Text = "显示菜单";
    Response.Write("<script language=javascript>parent.search.cols='0,*';</script>");
   }

49. 创建锚点字符串 (html)
    <FONT face="宋体"><a href="#" onclick="cwin();">关闭菜单</a></FONT> //

50. 系统提示asp.net 检测到不是1.1版本  如何解决?

     运行aspnet_regiis -i (在相应目录下,在dos 下运行此命令)

51. 如何关闭框架?

    Response.Write("<script language=javascript>top.location.href='login.aspx';</script>"); //显
     (让登录页面代替框架,此代码在框架中的一个页面中写)

52. 数据帮定语法:

    从dataview  DataBinder.Eval(Container.DataItem,"aaa")
   

53. 如何取模板列中的值
      if (((Button ) e.CommandSource).CommandName=="update")
      {string ls_bbb = ((TextBox) e.Item.FindControl("TextBox4")).Text; //bbb的值
      执行update 命令 } (在datalist的某个事件中)

//    DataList1.SelectedIndex = e.Item.ItemIndex;  (在itemcommand事件中)

54.   datalist模板列的编辑,更新和取消 
   
      必须把编辑列的commandname 定义为edit ,更新列的commandname 定义为  update
                  取消列的commandname 定义为 cancel

55.  如何使用Cookie

    HttpCookie MyCookie = new HttpCookie("LastVisit");
    DateTime now = DateTime.Now;

    MyCookie.Value = now.ToString();
    MyCookie.Expires = now.AddHours(1);
    Response.Cookies.Add(MyCookie);

56. 如何让.net的代码展开或者折叠

       #region 标题
   //代码块
    #endregion                       
57. 如何获取当前请求的验证

     bool www = Context.User.Identity.IsAuthenticated; 
        //www 如果为false的话,为没有经过验证, true 的话,为已经经过验证
              //当前请求是否验证成功
//或者  if(!Page.IsValid)   //指的是当前的页面的验证是否成功

58. 取得datagrid 中的数值 e.Item.Cells[4].Text;

59. 如何设置asp.net 页面的登录安全性

    FormsAuthentication.SetAuthCookie(st_UserName, false);
          //创建身份验证票 st_UserName 代表用户名  false 代表是否使用cookie
    FormsAuthentication.SignOut();  //移除身份验证票

   在web.config 中需要这样设置 : <deny users="?" />

60. 如何将datagrid 的行设置为修改状态  : 
   
     DataGrid1.EditItemIndex = (int) e.Item.ItemIndex; //事件为:DataGrid1_EditCommand
     然后,重新帮定一下

61. 如何上传很大的文件?
     修改web.config

      <httpRuntime maxRequestLength="10240"  useFullyQualifiedRedirectUrl="true" executionTimeout="100"/>
      10240 代表10M

62. 如何读写xml配置文件
 
    E:\我的文档\记事本\经验文档\net\文件

63. 如何在客户端上打开word文档,并保存到服务器上去?

   (在客户端上安装offices2003 或者xp) 
 
   <Script Language="JavaScript">
     function Validator()
     {
       var openDocObj;
       openDocObj = new ActiveXObject("SharePoint.OpenDocuments.2");
       openDocObj.EditDocument("http://localhost/webdemo1/肝火.doc");
     }
   </script>
 
65. aspx文件在dreamweaver 中显示(汉字)乱码?
  
   在dreamweaver 加入下面的语句: (换上新版本:可以显示aspx中的text框等)
   <meta http-equiv="Content-Type" content="text/html; charset=gb2312">

66. 在datagrid中,给编辑框赋值

     在事件DataGrid1_ItemCreated中,
        ListItemType lit = e.Item.ItemType;
   if(lit == ListItemType.EditItem)
   {
    TextBox TextBox1 = (TextBox)e.Item.FindControl("TextBox1");
    //DropDownList DropDownList1 = (DropDownList)e.Item.FindControl("DropDownList1");
    DataRowView drv = (DataRowView)e.Item.DataItem;
    
    if(drv != null)
    {
     TextBox1.Text = drv["loginname"].ToString();
      
    }
   }


  
67. 在datagrid中, 增加删除按钮的提示框
   
     在事件DataGrid1_ItemDataBound   中,

                       if (e.Item.ItemType == ListItemType.Item ||
    e.Item.ItemType == ListItemType.AlternatingItem)
   {

    LinkButton button = (LinkButton) e.Item.FindControl("lb_delete");
    
    button.Attributes.Add ("onclick","return confirm (\"确定要删除此项记录吗?\");");
   }
  
 68.  for循环的使用方法
              经常用于数组列表
       for (int i = 0;i <  10;i++)
    {
                                }

69.  foreach 循环的用法 //xhxhxh

    foreach (string s in myArray){} //ls_sz 为字符串的集合(普通数组)
    foreach (TreeNode ls_TreeNode_z in TreeView1.Nodes ){} //属性视图的foreach 用法
    foreach(DataRowView Row in dvTree)                     //dataset 的foreach 用法
    foreach(DataRow r in myDataSet.Tables[0].Rows)  //用于删除操作等  !!  遍历dataset
    foreach(DataRowView drv in dt.DefaultView)      //遍历DataView
    foreach(DataGridItem thisItem in DataGrid1.Items) //遍历datagrid
    for (int i=0;i < my_ArrayList.Count;i++)          //遍历ArrayList
    for (int i = 0;i < CheckBoxList1.Items.Count;i++) //遍历CheckBoxList
    for (int i = 0;i < DropDownList1.Items.Count;i++) //遍历DropDownList
    for(int i=0;i< ListBox2.Items.Count;i++)          //遍历listbox
    foreach (DataGridViewRow thisItem in dataGridView_main.Rows) //遍历datagridview
    foreach (DataGridViewRow myItem in dataGridView_main.SelectedRows)     //遍历datagridview (中 被选择的行)
    foreach (DataRowView myRow in myDataView)   //遍历DataRowView   视图
    foreach (ToolStripMenuItem myToolStripMenuItem in m_main.Items)//循环菜单项
    foreach (TreeNode myTreeNode in treeView_sc_select.Nodes) //循环树

70. DataView myDataView = new DataView(myDataSet.Tables[0]); //新的数据视图
    myDataView .RowFilter = " id = '"+s+"' and s_mch = '"+textbox_mch.text+"' ";

70. 大纲折叠

    #region #endregion

71.  公用sql语法返回值  //cx //tststs

   //web 应用
   if (myDataSet == null){qjbl.get_error_ck();return;}
   if (qjbl.is_update[0].ToString()== "no"){qjbl.get_error_ck();return;}

   //win form
   if (myDataSet == null){MessageBox.Show("数据库错误: " + DataOperation.globalErrorString, "提示", MessageBoxButtons.OK, MessageBoxIcon.Stop);return;}
   if (myDataSet == null) { MessageBox.Show(qjbl.qjbl_error, "提示", MessageBoxButtons.OK, MessageBoxIcon.Stop); return; }
   if (qjbl.is_update[0].Trim() == "no") {MessageBox.Show("数据库错误: "+qjbl.is_update[1].Trim(), "提示", MessageBoxButtons.OK, MessageBoxIcon.Stop); return; }
   //普通提示
   MessageBox.Show("我的文字", "提示", MessageBoxButtons.OK, MessageBoxIcon.Stop);

71. c# 按钮提示

       DialogResult myDialogResult = new DialogResult();
       myDialogResult = MessageBox.Show("是否真的要创建数据库?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
       if (myDialogResult == DialogResult.No) { return; }

72. 从字符串中取数组

    string[] myArray;
   myArray= ls_str.Split(";".ToCharArray());

73. datagrid 在进行数据编辑的时候,点击更新或取消之外的按钮的时候,要注意:
 

 if (e.Item.Cells[0].Text == null || e.Item.Cells[0].Text.ToString().Trim() == "" )
   {
    Response.Write("<script language=javascript>window.alert('请进行数据更新或者取消');</script>");
    return;
   }

75.  删除按钮(datagrid 的 DataBound事件)
 

              if (e.Item.ItemType == ListItemType.Item ||
    e.Item.ItemType == ListItemType.AlternatingItem)
   {

    LinkButton button = (LinkButton) e.Item.FindControl("lb_delete");
    
    button.Attributes.Add ("onclick","return confirm (\"确定要删除此项记录吗?\");");

76.   编辑框的数据的提取(datagrid 的 ItemCreated事件) 给编辑框赋值

    if (e.Item.ItemType == ListItemType.EditItem)
   {
    TextBox TextBox1 = (TextBox) e.Item.FindControl("TextBox1");
    DataRowView drv = (DataRowView)e.Item.DataItem;
    //
    if(drv != null)
    {
     TextBox1.Text =  drv["name"].ToString();
    }

   }

77.    datagrid 的风格语法(在<Columns> 之前)

      <FooterStyle ForeColor="Black" BackColor="#CCCCCC"></FooterStyle>
         <SelectedItemStyle Font-Bold="True" Wrap="False"></SelectedItemStyle>
         <AlternatingItemStyle Wrap="False" CssClass="table_odd_row"></AlternatingItemStyle>
         <ItemStyle Wrap="False" CssClass="table_even_row"></ItemStyle>
         <HeaderStyle Font-Bold="True" HorizontalAlign="Center" ForeColor="White" BackColor="#000084"></HeaderStyle>

78. panel 风格的设置   div_2.Style.Add("Top ","0");

79. 页面的设置
   
  
    class="table_title_text"  //无颜色 大字
    class="table_title_text_small"  //黑色 小字(很小)
    class="table_border"      //黑框   小字
    class="table_title_row"   //蓝色  小字、
    class="table_even_row"   //灰色  小字、
    class="table_odd_row"   //灰色(更灰)  小字
   
80. 日期格式 (日期转化为字符串) ld_date.tostring("yyyy-MM-dd")

81. 手工生成dataset (外部) 临时table
    
                     DataSet myDataSet = new DataSet();
                                         DataTable dt = new DataTable();
   DataColumnCollection dcc = dt.Columns;
                        dt.TableName = "Table";
   DataColumn dc = new DataColumn("a01", typeof(System.String));
   dcc.Add(dc);
   dc = new DataColumn("a02", typeof(System.String));
   dcc.Add(dc);

   DataRow dr = dt.NewRow();
   dr[0] = "asdfasdf";
   dr[1] = "rrrrrrrrr";
   
   dt.Rows.Add(dr);

   myDataSet .Tables.Add(dt);


82.  datagrid分页删除的时候,取得最后一行(为当前行)

   if(e.Item.ItemIndex == 0 && DataGrid1.Items.Count == 1)
   {
    int pageIndex = DataGrid1.CurrentPageIndex - 1;
    if(pageIndex < 0){ pageIndex = 0;}
                                DataGrid1.CurrentPageIndex = pageIndex;
   }


83. datagrid分页新增的时候,取得最后一行(为当前行)
 
   if ( DataGrid1.CurrentPageIndex == DataGrid1.PageCount -1)
   
     //
    {
    
     if (DataGrid1.Items.Count == 10)
     {
      DataGrid1.CurrentPageIndex = DataGrid1.CurrentPageIndex + 1;
     }
    }
    else
    {
                                        DataGrid1.CurrentPageIndex = DataGrid1.PageCount -1;
        if (DataGrid1.Items.Count == 10)
     {
      DataGrid1.CurrentPageIndex = DataGrid1.PageCount;
      
     }
    }


85.    datagrid 中数字列的格式化设置 #号的作用是:0的时候不出现  {0:#.##} 
                  日期列的格式化设置: {0:yyyy-MM-dd}              
       在报表服务器中               #.##

86.   在datagrid  中增加行的序号 (增加一个模版列)

        DataGrid1.CurrentPageIndex*DataGrid1.PageSize+DataGrid1.Items.Count+1

87.   在asp.net 中定时器的使用

   在html中  :

             <script language="javascript">
               function GetClass()
                 {
                   var k="";
                     k="<%= GetClass() %>";
                     alert(k);
                   }
                 setInterval("GetClass()",1000)
  </script>
   在c# 中 :  public string GetClass()
  {
   return "OK";
  }

88. 模拟浏览器的回退按钮

   javascript:window.history.back();
   javascript:window.history.forward();

89. 如何认让网页自动刷新

   <meta http-equiv="Refresh" content="3;url=http://www.peopledaily.com.cn">
       //3是秒数
       //http://www.peopledaily.com.cn 是跳转的地址
    或者:
    window.location.reload();

90.  使网页的框获得焦点

         <script>
  function jump()
  {
    document.all.txtLoginName.focus()

  }
  </script>

91.  在网页上使回车键变成tab键

   
  <SCRIPT LANGUAGE="JavaScript">
function mm()
{
  if(window.event.keyCode==13)
  {
    window.event.keyCode    = 9;
  
  }
}
</SCRIPT>
  <body onkeydown="mm()">

92. 在网页上如何得到按键的值

   <SCRIPT  LANGUAGE=javascript>
<!--

function check() {
 alert(window.event.keyCode);
 }
//-->
</SCRIPT>

<body onkeydown="check()">

93. 菜单属性设置

  
   <asp:Panel id="Panel1" style="Z-INDEX: 101; LEFT: 0px; POSITION: absolute" runat="server" Height="99.94%"
    Width="144px" BackImageUrl="images/leftbg.jpg">
    <FONT face="宋体">
     <pan:WebNavigator id="WebNavigator1" runat="server" Height="100%" ButtonHeight="20" LoadingText="无可用菜单"
      GroupSelected="0" GroupSpacing="0" ButtonBorderSize="1" BackgroundImage="images/menu/menu_bj.gif"
      ButtonBackgroundImage="images/PanelBegin2.gif" InnerHighlightColor="#E1E1E1" SelectedButtonBackgroundImage="images/PanelBegin2.gif"></pan:WebNavigator></FONT>
   </asp:Panel>


94. 使用变量代替html 字符
   <TITLE><% =get_title() %></TITLE>

95. 数组的赋值    

                string[] ls_cs = new string[2] ;
                ls_cs[0] = "";

96.  <iframe width=420 height=330 frameborder=0 scrolling=auto src=URL></iframe>,


97.   网页的父子关系

<SCRIPT lanuage='JScript'>
window.showModelessDialog('messages.asp',[window],'dialogWidth:395px;dialogHeight:30px;dialogLeft:200;dialogTop:0;help:no;status:no;scroll:0;resizable:yes');</script>");


98.  格式化数字的小数位数(2位小数)

     <%# DataBinder.Eval(Container.DataItem, "Price", "{0:n2}") %>
     <%# DataBinder.Eval(Container.DataItem, "Price", "{0:#.##}") %>
     ld_dec_sz =  Math.Roundld_dec_sz,2) //对数值进行格式化
 
99.   判断字节数

     System.Text.Encoding.Default.GetByteCount(str)

100. HttpContext.Current.Response.Write("<script language=javascript>window.alert('" + eee.Message.ToString() + "');</script>"); //显示提示框

101. GridView 表头合并的问题
       private void NewRenderMethod(HtmlTextWriter writer, Control ctl)
    {
      
        writer.Write("<TD colspan=\"3\" align=\"center\">联系电话</TD>\n");
        writer.Write("<tr><td colspan = \"2\" align=\"center\">111</td><td>333</td></tr>");
      
    }
    //
    protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
    {
        ListItemType lit = (ListItemType)e.Row.RowType;
             if(ListItemType.Header == lit)
             {
                 e.Row.SetRenderMethodDelegate(new RenderMethod(NewRenderMethod));
             }
    }

102. 备份 恢复 数据库

   backup database sbxxxt2 to disk='d:\sbxxxt_data.bak'


   restore filelistonly from disk='d:\sbxxxt_data.bak'

   load database sbxxxt2                  
    from disk='d:\sbxxxt_data.bak'
    with recovery,
    replace,
    move 'aaa ' to 'd:\sbxxxt2_data.mdf',
    move 'aaa_log'  to 'd:\sbxxxt2_log.ldf'
    //
    select filename from sysdatabases where name = 'master'   //取得数据库的安装路径
    //

103. 取得c# windowform 程序的执行路径
    
    Application.StartupPath

104. C# windows程序的提示

              DialogResult myDialogResult = new DialogResult();
           myDialogResult = MessageBox.Show("是否真的要创建数据库?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
           if (myDialogResult == DialogResult.No) { return; }

105. 从域中获取用户名:

       准备工作: (1. 我的电脑属性加入域:如:myn.com 2. 网络连接 DNS设置域服务器为DNS服务器   )
       DirectorySearcher ds = new  DirectorySearcher();
       ds.SearchRoot = new DirectoryEntry("LDAP://DC=myn,DC=com");
       ds.Filter = "(|(&(objectCategory=user)(name=*)))";
       ds.PropertiesToLoad.Add("name");
       ds.PropertiesToLoad.Add("sAMAccountName");
       ds.SizeLimit = 10000;
       ds.PageSize = 10000;
       ds.ServerTimeLimit = TimeSpan.FromMinutes(5);
        try
        {
           // start searching
            SearchResultCollection src = ds.FindAll();
            foreach (SearchResult sr in src)
            {
                string tmp = sr.GetDirectoryEntry().Path.ToString();
                string tmp1 = tmp.Substring(7, tmp.Length - 14);
                string login = sr.GetDirectoryEntry().Properties["sAMAccountName"].Value.ToString();
                string strIns = "INSERT INTO adDeptManTemp (NoteValue, manName, manLogin) VALUES ('" + tmp + "','" + tmp1 + "','" + login + "')";
            }
            src.Dispose();
        }
        catch (Exception err)
        {
            Response.Write("<script language=javascript>window.alert(" + err.Message + ")</script>");
        }

106. 根据域的用户名和口令登录

         try
        {

            DirectoryEntry dr = new DirectoryEntry("LDAP://DC=myn,DC=com", TextBox_user.Text, TextBox_kl.Text, AuthenticationTypes.Secure);
            if (dr.Name != string.Empty)
            {
                string sss = dr.Name;
            }
        }
        catch (Exception err)
        {
            string sss = err.Message.Trim();
        }

107.   windows程序调用ie

      System.Diagnostics.Process.Start("IExplore.exe", "http://www.sina.com.cn");

108.  左连接
 
      select rtrim(adtype.s_name) as s_name from zhwl_lsh LEFT OUTER JOIN adtype ON  zhwl_lsh.f13 = adtype.f11 where              zhwl_lsh.f13 = adtype.f11

109. sql语法

      case 用法: CASE WHEN price IS NULL THEN 'Unpriced' WHEN price < 10 THEN 'Bargain' WHEN price BETWEEN 10 and 20 THEN                  'Average' ELSE 'Gift to impress relatives' END

110. 判断网络连通

   static bool IsOnLine()
        {
            NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces();
            foreach (NetworkInterface adapter in adapters)
            {
                IPInterfaceProperties Propertims = adapter.GetIPProperties();
                if (adapter.OperationalStatus != OperationalStatus.Up)
                {
                    continue;
                }
                //
                UnicastIPAddressInformationCollection addressCollection = Propertims.UnicastAddresses;
                foreach (UnicastIPAddressInformation addressInfo in addressCollection)
                {
                    if (IPAddress.IsLoopback(addressInfo.Address))
                    {
                        continue;
                    }
                    //
                    if (addressInfo.Address.ToString() == IPAddress.IPv6None.ToString())
                    {
                        continue;
                    }
                    //
                    if (addressInfo.Address.ToString() == IPAddress.None.ToString())
                    {
                        continue;
                    }
                    //
                    return true;
                }
                //
            }
            //
            return false;
            //
        }


111. sql 注入 和 防范(不能录入单引号)
   
    [html]<script>
        function renc(obj, reg, inputStr)
        {
                var docSel        = document.selection.createRange()
                if (docSel.parentElement().tagName != "INPUT")        return false
                oSel = docSel.duplicate()
                oSel.text = ""
                var srcRange        = obj.createTextRange()
                oSel.setEndPoint("StartToStart", srcRange)
                var str = oSel.text + inputStr + srcRange.text.substr(oSel.text.length)
                return reg.test(str)
        }
</script>

<asp:TextBox ID="TextBox1"  onkeypress ="return renc(this,/^[^']*$/,String.fromCharCode(event.keyCode))" runat="server" Style="z-index: 101; left: 30px; position: absolute;
            top: 155px"></asp:TextBox>
[/html]
   

112.  如何在网页中 动态生成元素

      在页面上:
      <span id="imgid" runat="server"></span>  作用是 进行定位
     在 代码里面:
          string str1=null;
   int j;
   for(j=1;j<=aa;j++)
    str1=str1+"<br>&nbsp; <INPUT id='uploadFile"+j+"' type='file' name='uploadFile"+j+"' runat='server'>";
  imgid.InnerHtml=str1;

113. 如何在网页上 支持汉字(不是Uncode) 不出现乱码

    <globalization  requestEncoding="GB2312" responseEncoding="GB2312"/>

115. 修改列的宽度(Sql)

     ALTER TABLE aaa ALTER COLUMN f13 char (30)

116. 抛出 一个 新异常

   throw new Exception(Public.globalErrorString);

117. 对Datagridview 的排序

    ListSortDirection direction;
            direction = ListSortDirection.Descending;

            dataGridView1.Columns[0].HeaderCell.SortGlyphDirection = SortOrder.None;
            dataGridView1.Sort(dataGridView1.Columns[0], direction);

118. 得到客户端的IP地址
     
      Request.UserHostAddress.ToString()   //用于asp.net
      ip=Request.ServerVariables("Local_Addr") //第二种用法
      System.Web.HttpContext.Current.Request.UserHostAddress //用于webservices或者网站
      //发布以后 起作用 调试的时候 得到127.0.0.1
119. 下载文件的IIS设置 (自动更新)
  
     在"MIME 类型"框中键入
     .*
     application/octet-stream
    

120. 如何使用多线程(带参数使用)
    
      //Thread thNew = new Thread(new ParameterizedThreadStart(Show_Progress));
                            //thNew.Start(myArrayList);
        private void Show_Progress(object myArrayList)
        {
            ArrayList ArrayList_Current = (ArrayList)myArrayList;
            if (myFTP.Put(ArrayList_Current[0].ToString() + ArrayList_Current[1].ToString(), ArrayList_Current[2].ToString()) == false)
            {
                MessageBox.Show(UseScene.textBox_Photo + "上传失败\r\n" + Public.globalErrorString, "提示", MessageBoxButtons.OK, MessageBoxIcon.Stop);

            }
            timer_UpLoad.Stop();
        }
       如果不带参数(Thread thNew = new Thread(new ThreadStart(Show_Progress));)

121.   访问FTP

          ftp://sa:123@192.168.50.23/

122. 
    c#安装盘如何将卸载的快捷方式放到菜单上?

   将msiexec.exe 文件 复制到安装文件目录下
   创建这个文件的快捷方式 并设置快捷方式的属性
   Arguments为 /x{[ProductCode]}

123. 如何在下载安装盘的时候 保留一部分文件?
   
   选择这个文件 点击属性Permanent 将属性设置为:True

126. 数据库分区

     1. Create PARTITION FUNCTION 分区函数名称 (datetime) AS RANGE RIGHT FOR VALUES
             ('2008-01-01', '2008-04-02', '2008-07-03','2008-10-03', '2009-01-03')

     2. Create PARTITION SCHEME 分区架构名称 as PARTITION 分区函数名称 ALL to ([PRIMARY])

      3. ALTER TABLE 表名     DROP CONSTRAINT 索引名称
                WITH(  MOVE TO 分区架构名称(列名))


    (须为 聚集索引)

127.  关于datagridview 中数字的表示
 

     1. 带小数的 #,##0.00;-#,##0.00;'' 整数     0;-0;''

128. 自定义事件:
     //定义委托
     public delegate void peijHandler(object sender, peij e);
    
    //定义事件参数
    public class peij : EventArgs
    {

        private String _itemName;

        public peij(string itemName)
        {

            _itemName = itemName;
        }

        public string ItemName
        {
            get { return _itemName; }
            set { _itemName = value; }
        }
    }
    //在控件类里面填写下面的代码
     public partial class UserControl1 : UserControl
     {
          public event peijHandler peij01; //定义事件
           private void button1_Click(object sender, EventArgs e)
        {
            peij BeforeArgs = new peij("888");
            if (peij01 != null)
            {
                peij01(button1, BeforeArgs);
            }

        }
     }
    经过上面几步 就可以在控件UserControl1上自定义了一个事件 这个事件执行的方法再在这个控件的事件里面写

129. 委托的用法:
      public delegate string mydl (string my_cs);
       public partial class Form1 : Form
    {
        public string ff_1(string my_cs)
        {
            return my_cs;
        }
         private void button1_Click(object sender, EventArgs e)
        {
            mydl aaa = new mydl(ff_1);
            string aa = aaa("aaa");

            MessageBox.Show(aa);
        }
    }
//////////////////////wpf/////////////////////////////////////////////////////
//////////////////////wpf/////////////////////////////////////////////////////
128. wpf 中 listview 的数据绑定
     <ListView Name="listView1" Margin="12,12,12,0" Height="108" VerticalAlignment="Top" ItemsSource="{Binding}" >
            <ListView.View>
                <GridView>
                    <GridViewColumn Header="a01" DisplayMemberBinding="{Binding a01}"></GridViewColumn>
                    <GridViewColumn Header="a02" DisplayMemberBinding="{Binding a02}"></GridViewColumn>
                </GridView>
            </ListView.View>
        </ListView>

129. 动态添加事件 (自定义事件)

     myBtn.Click += new System.EventHandler(UpdateClick);       
     protected void UpdateClick(object sender, EventArgs e)
        {
            Button button = (Button)sender;
            MessageBox.Show(button.Name);
        }

     rpbtn.Click += new System.Windows.RoutedEventHandler(Increase);
     void Increase(object sender, RoutedEventArgs e)
        { }
    获取动态风格
    myToolTip.Style = (Style) FindResource("Simple");

130 wpf 滚动控件  <ScrollViewer>

131. 动态绑定 (依赖项属性)
    <TextBlock Text="{Binding ElementName=Rectangle属性1,Path=Height}"/>绑定其他控件的属性
     Height="{Binding ElementName=Slider1,Path=Value}"        //绑定其他控件的属性
    "{DynamicResource {x:Static SystemColors.MenuHighlightBrushKey}}" 绑定系统的颜色
    下面通过代码来绑定
    Button b = sender as Button;
    b.Background = (Brush)this.FindResource("RainbowBrush");

   //Rectangle1 是控件的名称  Height 是控件的属性

    通过代码来绑定:
    Binding binding = new Binding();  
    binding.Source = this.slider1;  
    binding.Path = new PropertyPath("Value");  
    this.textBox1.SetBinding(TextBox.TextProperty, binding);   

132. 对风格进行赋值

    Style="{StaticResource 关键字}"
    Style="{StaticResource Triggers}"

133. wpf控件 Slider 的属性:
     Name="mySlider" (控件名称)Width="219" Height = "100"
     Orientation="Horizontal" (是水平Horizontal还是垂直Vertical)
     Value="0"  (目前的箭头所在的值)
     Minimum="10" (最小数值)
     Maximum="10" (最大数值)
     TickPlacement="BottomRight" (刻度放置的位置)
     AutoToolTipPlacement="BottomRight" (是否有提示以及提示出现的位置)
     AutoToolTipPrecision="2" (提示数字的小数位数)
     TickFrequency="3" (移动频率)
     IsSnapToTickEnabled="True" (移动最少一格TickFrequency 不走刻度中间)
     IsDirectionReversed="True" (获取或设置Value 的增加方向是否与默认方向反向)
     IsMoveToPointEnabled="True"
     (是否立即将Slider 的Thumb 移动到在鼠标指针悬停在Slider 轨道的上方时鼠标单击的位置)
     Ticks="0, 1.1, 2.5, 3"(以不规则间隔沿Slider 创建刻度线)
     IsSelectionRangeEnabled="true"(获取或设置TickBar 是否显示选择范围)
     SelectionStart="1.1"(获取或设置Slider 的指定选择内容的最小值)
     SelectionEnd="3"  (获取或设置Slider 的指定选择内容的最大值)
     代码设置不规则的刻度线
      DoubleCollection tickMarks = new DoubleCollection();
            tickMarks.Add(1.1);
            tickMarks.Add(1.3);
            tickMarks.Add(2.0);
            tickMarks.Add(7.0);
            tickMarks.Add(10.0);
     hslider.Ticks = tickMarks;

134. wpf控件 ProgressBar的属性:
        类:Duration (处于活动状态的持续时间)
        Duration duration = new Duration(TimeSpan.FromSeconds(1));(1秒)
        类:DoubleAnimation(使其在指定的时间内由起点值到达终点值,从而形成动画效果)
        DoubleAnimation doubleanimation = new DoubleAnimation(0,100.0, duration);
        doubleanimation.RepeatBehavior = RepeatBehavior.Forever;(永远做下去)
        doubleanimation.RepeatBehavior = new RepeatBehavior(5);(做5次)
     ProgressBar1.IsIndeterminate = true;
     (该值指示进度条是使用重复模式报告一般进度,还是基于Value 属性报告进度)
    
135. wpf控件 定时器
     DispatcherTimer closeTimer = new DispatcherTimer(DispatcherPriority.Normal);

       closeTimer.Interval = TimeSpan.FromSeconds(2);
       closeTimer.Tick += new EventHandler(TimeOutPopup);

       private void TimeOutPopup(object sender, EventArgs e)
        {
            myPopup.IsOpen = false;
            closeTimer.Stop();
        }

136. wpf控件 Popup
      PlacementTarget="{Binding ElementName = myEllipse}"
       获取或设置当打开Popup 控件时该控件相对于其放置的元素
      PlacementRectangle="0,0,30,50" 获取或设置当打开Popup 控件时该控件相对于其放置的矩形
      VerticalOffset="20" 获取或设置目标原点与弹出项对齐点之间的垂直距离
      HorizontalOffset="20" 获取或设置目标原点与弹出项对齐点之间的水平距离
      Placement="Bottom"
      获取或设置Popup 控件打开时的控件方向,并指定Popup 控件在与屏幕边界重叠时的控件行为
      PopupAnimation="Fade"
      AllowsTransparency="True" 该值指示Popup 控件是否可以包含透明内容
      PopupAnimation:指示显示窗口时是否使用动画,只有在AllowsTransparency 等于true时此属性才有用
          PopupAnimation="Fade" 褪色或者出现
          PopupAnimation="None" 没有动画
          PopupAnimation="Scroll" 从左上角出现到制定位置
          PopupAnimation="Slide"  从上面过来
      IsOpen="{Binding ElementName=myCheckBox,Path=IsChecked}" 是否出现绑定到myCheckBox
      下面是自定义位置的例子:
      myPopup.CustomPopupPlacementCallback =
                new CustomPopupPlacementCallback(placePopup);
       public CustomPopupPlacement[] placePopup(Size popupSize, Size targetSize, Point offset)
        {
            CustomPopupPlacement[] ttplaces =
                    new CustomPopupPlacement[] { new CustomPopupPlacement() };
            ttplaces[0].Point = new Point(-50, 90);
            ttplaces[0].PrimaryAxis = PopupPrimaryAxis.Vertical;
            return ttplaces;
        }
136. wpf控件 TextBlock
     Name="PopupContent"  FontFamily="Courier New" 字体名称
     Background="Beige"
     FontSize="12"
     Width="75" 
     FontSize. 文字大小,以像素为单位
     TextWrapping="Wrap" 获取或设置TextBlock 对文本进行换行的方式
     Text="郑文亮"    文本
     FontStyle="Normal"  可设置两种值: Normal, Italic(斜体)
     FontStetch. 按比例缩放文字,它提供一些枚举值 如下表
     FontWeight. 文字的胖瘦。可设置为
          Thin, ExtraLight, Light, Normal, Medium, SemiBold, Bold, ExtraBold, Black, ExtraBlack.            这些值是否起作用还要取决于你所选择的字体      
     Foreground.  通过这个属性可以设置文字的前景色填充。不但可以使用颜色值,还可以通过设置solid             color, gradient, image 及 video笔刷进行填充。还是那句话:很好,很强大
     TextDecorations. 对文字的修饰,当前Silverlight2只支持underline
     Runs. 你可以在TextBlock中使用Run标签创建内联元素,每个Run都可以设置上面提到的属性
     TextWrapping属性的值为“Wrap”来强制其换行
     LineBreak标签,它的作用相当于html中的<br />  换行标签
    
137. wpf控件 Canvas
    
138. wpf控件 Grid(wpf)
     Grid.SetRow(txtbox, i);        //TextBox放在第i+1行
     Grid.SetColumn(txtbox, 1);     //TextBox放在第2列
     Grid.SetColumnSpan(txtbox, 3); //TextBox跨越到最后一列(第4列) 
     grid.Children[1].Focus();  // 为第一个TextBox设置焦点

     <Grid.ColumnDefinitions>
         <ColumnDefinition Width="Auto"/>
         <ColumnDefinition Width="*"/>
     </Grid.ColumnDefinitions>
       <Grid.RowDefinitions>
            <RowDefinition Height="35"/>
            <RowDefinition Height="*"/>
            <RowDefinition Height="35"/>
        </Grid.RowDefinitions>
138. wpf类 动画
       BeginStoryboard
     一个触发器操作,该操作可启动 Storyboard 并将其动画分发给动画的目标对象和属性
        <BeginStoryboard>
           <Storyboard>
            <DoubleAnimation
              Storyboard.TargetName="旋转变形的名称"
              Storyboard.TargetProperty="控件属性"  
                     控件属性=(RotateTransform.Angle) 获取或设置顺时针旋转角度(以度为单位)
              From="0" To="360" Duration="0:0:5" AutoReverse="True" />
           </Storyboard>
        </BeginStoryboard>
        //下面的Canvas 是给上面用的
        <Canvas Width="100" Height="100" Background="YellowGreen"
              Margin="150" >
                <Canvas.RenderTransform>
                    <RotateTransform x:Name="旋转变形的名称" />
                </Canvas.RenderTransform>
        //下面是为按钮的转动 转动的按钮的属性就是这么设置
        <Button Height="100" Width="100" Content="我是按钮 我会转动" Name="yyy">
            <Button.RenderTransform>
                <RotateTransform x:Name="Button_theTransform" />
            </Button.RenderTransform>
       缩放动画
       <BeginStoryboard>
                        <Storyboard>
                            <DoubleAnimation
                Storyboard.TargetName="zhwl_ScaleTransform"
                Storyboard.TargetProperty="ScaleY"
                From="1" To="5" Duration="0:0:5" AutoReverse="True">
                              
                            </DoubleAnimation>
                            <DoubleAnimation
                Storyboard.TargetName="zhwl_ScaleTransform"
                Storyboard.TargetProperty="ScaleX"
                From="1" To="5" Duration="0:0:5" AutoReverse="True">

                            </DoubleAnimation>
                        </Storyboard>
                    </BeginStoryboard>
         //
        <Rectangle Height="50" Width="50" Fill="#CCCCCCFF"   Stroke="Blue" StrokeThickness="2" >
            <Rectangle.RenderTransform>
                <ScaleTransform x:Name="zhwl_ScaleTransform" CenterX="0" CenterY="0" ScaleX="2"                     ScaleY="2" />
            </Rectangle.RenderTransform>
        </Rectangle>
         AutoReverse="True" 转过去再转回来 false 就不转回来了
  

139. wpf 路径:
     pack://application:,,,/HomePage.xaml 没有子目录
     pack://application:,,,/Sub/HomePage.xaml 有子目录

140. wpf 资源合并
 
      <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries >
                <ResourceDictionary Source="Resources/Dictionary2.xaml"/>
                <ResourceDictionary Source="Resources/Dictionary1.xaml"/>
           </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
     
141.  wpf Style
      BasedOn= "{StaticResource 公共标志}" 继承自的公共风格(有标志Key)
      BasedOn="{StaticResource {x:Type CheckBox}}"   继承自的公共风格(无标志)
      TargetType="{x:Type TextBox}"  目标控件
      x:Key="我的标志"               用于Key的标志
      <Setter Property = "Background" Value= "Red"/>  属性和值
      <EventSetter Event="Checked" Handler="Checked_Click"/> 事件和执行函数

142.  wpf   控件模板ControlTemplate 
      //使用方法 <Button Content="test btn" Template="{StaticResource ButtonTemplate}"
      //下面是定义
      <ControlTemplate TargetType="Button" x:Key="ButtonTemplate">
      <!--定义视觉树-->
      <Grid>
         <Ellipse Name="faceEllipse" Width="{TemplateBinding Button.Width}"                        Height="{TemplateBinding Control.Height}" Fill="{TemplateBinding                               Button.Background}"/>
           <TextBlock Name="txtBlock" Margin="{TemplateBinding Button.Padding}"                          VerticalAlignment="Center" HorizontalAlignment="Center"
              Text="{TemplateBinding  Button.Content}" />
         </Grid>
       <!--定义视觉树_end-->
       <!--定义触发器-->
         <ControlTemplate.Triggers>
         <Trigger Property="Button.Ie="True">
             <Setter Property="Button.Foreground" Value="Red" />
         </Trigger>
        </ControlTemplate.Triggers>
        <!--定义触发器_End-->
        </ControlTemplate>

143.  wpf 菜单

      Header="_Cut"
      InputGestureTexmmand="ApplicationCommands.Open"

145. wpf 控件 Windows
      WindowStartupLocation  开始的位置
      Content = Grid1   布局控件
      ResizeMode="NoResize"可去掉最大化和最小化按钮
      SizeToContent = SizeToContent.WidthAndHeight;  根据内容自动调整

146. wpf FlowDocument 流文档   
         Section 分区 相当于 <div>
         Paragraph 段落
         BlockUIContainer 里面可以加图片
         InlineUIContainer 放置内置的wpf 控件 (一段文字的中间)
         Table 表格
         Table.Columns 列
         TableRowGroup 表行组
         TableRow 行
         TableCell 单元格 (里面有文字 还是需要Paragraph 标志)
         Span 将其他 Inline(内置) 流内容元素分组
         用于将其他内联流内容元素分组在一起。没有内在的呈现应用于 Span 元素中的内容或其他元素
         <Span FlowDirection="LeftToRight" Language="ar-SA"> 布局方向和语言

147   wpf Path

      StrokeThickness="4" 线条的粗细
      Stroke="Black"      线条的颜色
      FlowDirection="LeftToRight" 方向
       <Path.Data>
            <GeometryGroup >
                <LineGeometry StartPoint="300,10" EndPoint="350,30" />
                <LineGeometry StartPoint="10,30" EndPoint="352,30" />
                <LineGeometry StartPoint="300,50" EndPoint="350,30" />
            </GeometryGroup>
        </Path.Data>

148.  wpf Viewbox
      定义一个内容修饰器,该修饰器可拉伸和缩放单个子元素以填满可用空间

149.  wpf Ellipse (椭圆)
      x:Name = "GelBackground" ()

145. 继承系统命令:
      例如: 143问题
      ApplicationCommands(应用程序命令):
      CancelPrint:取消打印
      Close:关闭
      ContextMenu:上下文菜单
      Copy:复制
      CorrectionList: Gets the value that represents the Correction List command.
      Cut:剪切
      Delete:删除
      Find:查找
      Help:帮助
      New:新建 
    NotACommand:不是命令,被忽略
      Open:打开
      Paste:粘贴
      Print:打印
      PrintPreview:打印预览
      Properties:属性
      Redo:重做
      Replace:取代
      Save:保存
      SaveAs:另存为
      SelectAll:选择所有的
      Stop:停止
      Undo:撤消
   ComponentCommands(组件命令):
      ExtendSelection:后接Down/Left/Right/Up, 比如:ExtendSelectionDown(Shift+Down,Extend           Selection Down),ExtendSelectionLeft等
      Move:后接Down/Left/Right/Up, 如:MoveDown
      MoveFocus:后接Down/Forward/Back/Up, 如:MoveFocusDown
      MoveFocusPage:后接Down/Up,如:MoveFocusPageUp
      MoveTo:后接End/Home/PageDown/PageUp,比如:MoveToPageDown
            ScrollByLine
      ScrollPage:后接Down/Left/Right/Up,比如:ScrollPageLeft
      SelectTo:End/Home/PageDown/PageUp,比如:SelectToEnd
      NavigationCommands(导航命令):
      Browse浏览: 后接Back/Forward/Home/Stop, 比如:BrowseBack
         缩放显示:DecreaseZoom, IncreaseZoom, Zoom
      Favorites(收藏)
     页面:FirstPage, LastPage, PreviousPage, NextPage,GoToPage
        NavigateJournal
      Refresh(刷新)
      Search(搜索)
    MediaCommands(多媒体控制命令):
        Treble高音:DecreaseTreble,IncreaseTreble
        Bass低音:BoostBass,DecreaseBass,IncreaseBass
        Channel频道:ChannelDown,ChannelUp
        MicrophoneVolume麦克风音量调        节:DecreaseMicrophoneVolume,IncreaseMicrophoneVolume,MuteMicrophoneVolume
        ToggleMicrophoneOnOff:麦克风开关
        Volume音量: DecreaseVolume,IncreaseVolume,MuteVolume
        Rewind, FastForward(回放,快进)
        Track轨道:PreviousTrack,NextTrack [上一段(节)]
        Play,Pause,Stop,Record(播放,暂停,停止,录制)
                    TogglePlayPause
        Select选择
        EditingCommands(编辑/排版类命令):
        Align对齐:AlignCenter,AlignJustify,AlignLeft,AlignRight(居中,撑满,左对齐,右对齐)
        Backspace退格
              TabForward,TabBackward(Tab前缩,Tab向后)
        FontSize字体大小:DecreaseFontSize,IncreaseFontSize
         Indentation缩排:DecreaseIndentation, IncreaseIndentation
         Delete删除: Delete选中部分,DeleteNextWord:删除后一字,DeletePreviousWord:删除前一字
        EnterLineBreak:换行
        EnterParagraphBreak:换段
        CorrectSpellingError/IgnoreSpellingError:纠正/忽略拼写错误
        MoveUpByLine,MoveDownByLine: 上/下移一行,
        MoveUpByPage,MoveDownByPage: 上/下移一页
        MoveUpByParagraph,MoveDownByParagraph: 上/下移一段
        MoveLeftByCharacter/MoveRightByCharacter:左/右移一字符
        MoveLeftByWord/MoveRightByWord 左/右移一词
        MoveToDocumentStart/MoveToDocumentEnd:到文章开头/结尾
        MoveToLineStart/MoveToLineEnd:到一行的开头/结尾
        SelectUpByLine,SelectDownByLine:向上/下选一行
        SelectUpByPage,SelectDownByPage:向上/下选一页
        SelectUpByParagraph,SelectDownByParagraph:向上/下选一段
        SelectLeftByCharacter,SelectRightByCharacter:向左/右选中一字
        SelectLeftByWord,SelectRightByWord:向左/右选中一词
        SelectToDocumentStart,SelectToDocumentEnd: 选中到篇头/篇尾
        SelectToLineStart/SelectToLineEnd:选中到行首/行尾
        ToggleBold, ToggleItalic, ToggleUnderline(加粗,斜体,下划线)
        ToggleBullets, ToggleNumbering(列表:加点,加数字)
        ToggleInsert:插入
        ToggleSuperscript,ToggleSubscript(上标字,下标字)

146. linqtosql (跟踪更新的原始值和当前值)
    
        ChangeSet cs = dc.GetChangeSet();
            foreach (object o in cs.Updates)
            {
                aaa p = o as aaa;
                if (p != null)
                {
                    foreach (ModifiedMemberInfo mmi in dc.aaa.GetModifiedMembers(a))
                    {
                        Response.Write(mmi.Member.Name);
                        Response.Write(mmi.OriginalValue);
                        Response.Write(mmi.CurrentValue);
                    }
                }
            }


147.   //Table<T> table = db.GetTable<T>();
   
        //foreach (T item in db.GetChangeSet().Updates)
        //{
          

        //    ModifiedMemberInfo[] mmi = table.GetModifiedMembers(item);

        //    foreach (ModifiedMemberInfo mi in mmi)
        //    {
            
        //        string sColumnName = mi.Member.Name;


        //        string oldValue = mi.OriginalValue.ToString();
        //        string newValue = mi.CurrentValue.ToString();
             
        //    }

          
        //}

148.      正则表达式分割字符串

            string[] ss = Regex.Split(stext,@"dfdfdfd");  

posted @ 2011-02-21 11:20  郑文亮  阅读(4051)  评论(2编辑  收藏  举报