Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

?

?<input?type=”hidden”?name=”__EVENTTARGET”?id=”__EVENTTARGET”?value=””?/> <input?type=”hidden”?name=”__EVENTARGUMENT”?id=”__EVENTARGUMENT”?value=””?/> function?__doPostBack(eventTarget,?eventArgument)?{ if?(!theForm.onsubmit?||?(theForm.onsubmit()?!=?false))?{ theForm.__EVENTTARGET.value?=?eventTarget; theForm.__EVENTARGUMENT.value?=?eventArgument; theForm.submit(); } }

1,eventTarget? 代表控件ID, eventArgument代表控件对应的数据 可用: Request.Form[“__EVENTTARGET”] 形式获取ID,参数。特别在用CheckBoxList时,在其OnSelectedIndexChanged事件中可通过如下方式获取点击的CheckBox:
?? ? string ClickedItem = Request.Form[“__EVENTTARGET”];//得到用户点击的是哪个
????? ClickedItem = ClickedItem.Split(‘$’)[1];//进行拆分处理
???? chkDepartlist.Items[StringHelper.FormatBlankStringToint(ClickedItem)].Value) //当前点击的CheckBox

2, Button与ImageButton不可通过上述方式得到ID,因为他们没有调用 _doPostBack 方法,是直接submit的方式
?? 不过可用如下方式替换:
?? ???? <input?type=”button”?id=”Button2″?value=”Press?me”?onclick=”DoPostBack()”?/>?? <!–显示调用–>
??? ??? ?<script?language=”javascript”?type=”text/javascript”> ?
?? ??? ??? ??? ?function?DoPostBack()? { ??__doPostBack(‘Button2′,’My?Argument’);????? } ?
?? ??? ??? ?</script> string?passedArgument?=?Request.Params.Get(“__EVENTARGUMENT”);


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

维护着Application这个类,指示着在程序启动关闭、session启动关闭可做的事情。
如:Application_Start 、Session_Start


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

int i = (int)Keys.F1; //112
MessageBox.Show(Enum.GetName(typeof(Keys), i)); //F1


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58
public static string GetValue(string AppKey)
        {
            try
            {
                string AppKeyValue;
                AppKeyValue = System.Configuration.ConfigurationSettings.AppSettings.Get(AppKey);
                return AppKeyValue;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public static void SetValue(string AppKey, string AppValue)
        {
            //System.Configuration.ConfigurationSettings.AppSettings.Set(AppKey,AppValue);
            XmlDocument xDoc = new XmlDocument();
            xDoc.Load(System.Windows.Forms.Application.ExecutablePath + ".config");

            XmlNode xNode;
            XmlElement xElem1;
            XmlElement xElem2;
            xNode = xDoc.SelectSingleNode("//appSettings");

            xElem1 = (XmlElement)xNode.SelectSingleNode("//add[@key='" + AppKey + "']");
            if (xElem1 != null) xElem1.SetAttribute("value", AppValue);
            else
            {
                xElem2 = xDoc.CreateElement("add");
                xElem2.SetAttribute("key", AppKey);
                xElem2.SetAttribute("value", AppValue);
                xNode.AppendChild(xElem2);
            }
            xDoc.Save(System.Windows.Forms.Application.ExecutablePath + ".config");
        }


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

?1,<asp:button ? id=”x” ? runat=”server” ? OnClientClick=”this.disabled=true;document.post.submit();” ? /> ?
? ?
?? 2,设置一全局JS变量
var hasSubmit = 0;
。。。。{
?? ? if ( hasSubmit == 0 ){
??????????????? hasSubmit = 1;
??????????????? return true;
??????????? }else{
??????????????? return false;
??????????? }
}


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

主要是前一页面的编码格式与后一页面接收时不同造成的,可以在前一页面编码,后一页面解码
编码:System.Web.HttpUtility.UrlEncode(str, Encoding.GetEncoding(“GB2312”));
解码:System.Web.HttpUtility.UrlDecode(aa,System.Text.Encoding.GetEncoding(“Gb2312”));


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

用\n是不可以的,要用\r\n,主要是因为TextBox运行在Windows上。Windows能够显示的换行必须由两个字符组成:carriage return & line feed,也就是必须是”\r\n”。
为了保证可跨平台,最好用: Environment.NewLine

注:Console, WebForm用 /n是正常的

Environment方法:

1.获取操作系统版本(PC,PDA均支持)
Environment.OSVersion

2.获取应用程序当前目录(PC支持)
Environment.CurrentDirectory

3.列举本地硬盘驱动器(PC支持)
string [] strDrives=Environment.GetLogicalDrives();
foreach(string strDrive in strDrives)
{
?????
}

4.获取.Net Framework版本号(PC,PDA均支持)
Environment.Version

5.获取机器名(PC支持)
EnvironMent.MachineName

6.获取当前环境换行符(PC支持)
Environment.NewLine

7.获取处理器个数(PC支持)
Environment.SystemDirectory

8.获取当前登录用户(PC支持)
Environment.UserName

9.获取系统保留文件夹路径(PC,PDA均支持)
Environment.GetFolderPath(Environment.SpecialFolder对象)
Environment.SpecialFolder对象提供系统保留文件夹标识,例如:Environment.SpecialFolder.Desktop表示桌面文件夹的路径

10.获取命令行参数(PC支持)
string [] strParams=Environment.GetCommandLineArgs();
foreach(string strParam in strParams)
{
?????
}

11.获取系统环境变量(PC支持)
System.Collections.IDictionary dict=Environment.GetEnvironmentVariables();
string str=dict[“Path”].ToString();

12.设置环境变量(PC支持)
Environment.SetEnvironmentVariable(“Path”, “Test”);

13.获取域名(PC支持)
string strUser = Environment.UserDomainName;

14.获取截至到当前时间,操作系统启动的毫秒数(PDA,PC均支持)
str = Environment.TickCount.ToString();

15.映射到当前进程的物理内存数
str = Environment.WorkingSet.ToString();

16.退出应用程序
Environment.Exit(0)


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

1,新建:右键新增项-外观文件
2,编辑:如
注:没有ID属性
3,应用:在web.config中的 ……….. 这样就为整个网站的button指定了样式
页面级引用: <%@ Page Theme="Skin1" ......... 4,新建多个主题,选择改变,在程序中指定 protected void Page_PreInit(object sender, System.EventArgs e) { try { Theme = "Skin1"; } catch { // Empty strings result in no theme being applied. Theme = ""; } }


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

中直接加cssClss设置边框,则显示的只是整个table的四边有效果,内部没有线。
若想内部也有边框方法:
(1)this.GridView1.Attributes.Add(“bordercolor”, “red”);
(2)在GridView编辑列里的字段ItemStyle里面设才有用
(3)设置css时为td加上样式
table.gridview_m
{
border-collapse: collapse;
border:solid 1px #93c2f1;
width:98%;
font-size:10pt;
}

table.gridview_m td,th
{
border-collapse: collapse;
border:solid 1px #93c2f1;
font-size:10pt;
}


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58
 引入:System.Net.Mail

        string rtnMsg = "";
        SmtpClient client = new SmtpClient("192.168.16.200");
        MailMessage msg = new MailMessage("@lvshou.com", "zhengxuesong@lvshou.com");
        msg.SubjectEncoding = msg.BodyEncoding = Encoding.GetEncoding("gb2312");
        msg.Subject = "hello";
        msg.Body = "hello,mail";
        try
        {
            client.Send(msg);
            result = true;
            ClientScript.RegisterStartupScript(this.GetType(), "msg", "");
        }

        catch (Exception e1)
        {
            result = false;
            ClientScript.RegisterStartupScript(this.GetType(), "msg", "");
        }


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

?1,添加ScriptManager
2,添加UpdatePanel,并指定Triggers
3,添加UpdateProgress,在其中添加进度条,或语句


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

?利用JS执行:_function __doPostBack(eventTarget, eventArgument) {
??? if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
??????? theForm.__EVENTTARGET.value = eventTarget;
??????? theForm.__EVENTARGUMENT.value = eventArgument;
??????? theForm.submit();
??? }
每次实质进行的是form的提交!


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

?给页面的TextBox设置ReadOnly=”True”时,在后台代码中不能赋值取值,下边几种方法可以避免:

1、不设置ReadOnly,设置onfocus=this.blur()

C#代码 复制代码
  1. <asp:TextBox?ID=”TextBox1″?runat=”server”?onfocus=this.blur()></asp:TextBox>??
<asp:TextBox ID="TextBox1" runat="server" onfocus=this.blur()></asp:TextBox>

文本框不变灰色,但也无法手动修改内容,可以在后台通过Text属性正常赋值取值

2、设置了ReadOnly属性后,通过Request来取值,如下:

前台代码:

C#代码 复制代码
  1. <asp:TextBox?ID=”TextBox1″?runat=”server”?ReadOnly=”True”?></asp:TextBox>??
<asp:TextBox ID="TextBox1" runat="server" ReadOnly="True" ></asp:TextBox>

后台代码:

C#代码 复制代码
  1. string?Text?=?Request.Form[“TextBox1”].Trim();??
string Text = Request.Form["TextBox1"].Trim();

3、在Page_Load()正设置文本框的只读属性,能正常读取,如下:

C#代码 复制代码
  1. protected?void?Page_Load(object?sender,?EventArgs?e) ??
  2. { ??
  3. ????if?(!Page.IsPostBack) ??
  4. ????{ ??
  5. ????????TextBox1.Attributes.Add(“readonly”,”true”); ??
  6. ????} ??
  7. }?


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

1,数据 — 架构比较: 可比出两个数据库之间结构的任何差异,如多了一个字段,存储过程增加了一段代码等,之后可更新
2,数据 — 数据比较: 比较两个数据库同名表之间数据差异,是否多了记录,修改了某一条记录等等。(注:两个表都要有主键,不然比不出更新)


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

?

?案例1:父页面A.aspx弹出窗口B.aspx;关闭B.aspx页面刷新A.aspx;在B.aspx的点击关闭按钮时执行下列代码:

?? 1. string popupScript = “<script language=’javascript’>” + “alert(‘Submit successfully!’);window.opener.document.forms[0].submit();window.opener =null;window.close();” + “</script>”;? //可看出aspx都有一个from,所谓任何动态如button click都是form submit的结果。若无form,则页面会报错。
?? 2.???????????? Page.ClientScript.RegisterStartupScript(this.GetType(), “PopupScript1”, popupScript);

案例1:父页面A.aspx弹出窗口B.aspx;在B.aspx页面弹出C.aspx;关闭C.aspx并关闭B.aspx并刷新父页面A.aspx;在C.aspx的点击关闭按钮时执行下列代码:

?? 1. string popupScript = “<script language=’javascript’>” + “window.opener.opener.document.forms[0].submit();window.opener.opener = null;window.opener.close();window.opener=null;window.close();” + “</script>”;
?? 2.???????? Page.ClientScript.RegisterStartupScript(this.GetType(), “PopupScript1”, popupScript);

说明:

1.alert(‘Submit successfully!’):弹出窗口显示信息’Submit successfully!’;

2.window.opener.opener.document.forms[0].submit():重新提交父页面的信息;

3.window.opener.opener = null;window.opener.close();关闭上级窗口不弹出提示框;

4.window.opener=null;window.close();关闭本窗口不弹出提示


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58
 1,判断文件夹与文件是否存在及创建
if (System.IO.Directory.Exists(Server.MapPath("file")) == false)//如果不存在就创建file文件夹
             {
                 System.IO.Directory.CreateDirectory(Server.MapPath("file"));
             }
System.IO.Directory.Delete(Server.MapPath("file"),true);//删除文件夹以及文件夹中的子目录,文件    

判断文件的存在
if (System.IO.File.Exist(Server.MapPath("~/Back/Data.xml"))
{
//存在文件
}  
else
{
    File.Create("c.txt");
}

2,写文件
StreamWriter sw = new StreamWriter(“c.txt”, false, code);
     sw.Write('as');
 sw.Flush();
读文件
 StreamReader sr = null;
 string str = "";
            try
            {
                sr = new StreamReader(temp, code);
                str = sr.ReadToEnd();   //   读取文件   
            }


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

?1.符号“/”指程序运行所在根目录,即IIs所在目录。
2.符号“~/”,则是指网站所在根目录。
得到当前网站某一文件的方法:HttpContext.Current.Server.MapPath(“~//Ship/EmsTemplate.htm”)
3,URL:Request.ServerVariables[“HTTP_HOST”]


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

在ASP.Net中对各个WebForm控件引入以前没有的EnableViewState属性。这个属性究竟有什么用。我们知道对于 WebForm而言,其代码是在服务器端的,以处理客户端的请求。当用户通过浏览器浏览网页的时候,会对网页进行某些操作,比如打开新链接,或单击某个按钮。在ASP中,这些是通过脚本语言对其进行处理,之后再传递给服务器端。但是在ASP.NET下,由于采用了code behind技术,在coding的时候,通常是将以前客户端完成的工作放到了服务器端。

那么,服务器是怎么知道客户的操作的呢?比如我在文本框输入的内容,或者单击了登录按钮,服务器端是怎样得到这些信息的呢?因为没有这些信息,服务器端就无法响应客户的请求。原理就是ASP.NET引用了viewstate的机制。在服务器端保存了网页各个控件及页面的状态,这其中包括各个控件在页面上的布局,和他们各自的属性。这些值就保存在ViewState下。我们可以观察Aspx页面的html源代码,假设这个页面上有一个button按钮,和一个listBox控件,html文件如下:

<input type=”hidden” name=”__VIEWSTATE” value=”dDwzODYzNDM5NTU7Oz7FvviJbq45bDa7QJaumIiOhZ8mOQ==” />

?<input type=”submit” name=”Button1″ value=”Button” id=”Button1″ style=”height:40px;width:96px;Z-INDEX: 101; LEFT: 200px; POSITION: absolute; TOP: 240px” />
?<select name=”ListBox1″ size=”4″ id=”ListBox1″ style=”width:152px;Z-INDEX: 102; LEFT: 176px; POSITION: absolute; TOP: 120px”></select>

我们它的不同之处,一是少了以前所必须响应客户端事件的脚本语言,一是多了一个名为”_VIEWSTATE”的属性。其值是一长串字符。类型为 “hidden”。这个值记录的就是各个控件和页面的状态信息。当用户对页面进行相关操作的时候,状态值发生改变,并将改变的值传递给服务器端。服务器端在比较改变后的状态值和初始值之间的区别,以响应具体的请求。

一旦页面的控件很多,这种频繁的传递控件状态值对网络的消耗是很大的,因此,ASP.Net提供了EnableViewState属性,系统默认的值为true。当设置为true时,在传递状态值时就包括该控件;如果设置为false,则传递状态值时则不包括它。既然状态值不包括该控件,则客户端对它进行的操作,服务器端是不响应的。

我们可以做个实验,在Button1_Click事件中,编写代码:

ListBox.Items.Add(”客户端点击按钮一次!”);

此时运行该应用程序,单击网页上的按钮,在ListBox中会添加内容,不断地单击,内容则不断添加。如果我们将ListBox的EnableViewState属性改为false时,不断单击按钮,则只能添加一次。

这样有什么好处呢?如果我们在开发Web应用程序时,某些控件是不需要接受用户的操作或只需要接受一次操作的时候,我们可以将这些控件的EnableViewState属性改为false,这样可以优化我们的程序,提高网络访问的速度。

注:Textbox Checkbox Checkbox List RadioButtonList
上面控件的状态通过IPostBackEventHandler 和 IPostBackDataHandler接口处理,而不是ViewState的机制,所以EnableViewState没有效果。


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

?1,界面层,逻辑层,数据处理层。
界面层负责接收客户录入的信息,并返回结果

一个用户进入系统,根据其角色进行相应的数据读取,显示
界面层:用户账号的记录,传入到逻辑层,逻辑层根据其账号,找到其部门,传到数据处理层,得到此部门的数据信息,之后层层返回,让界面层显示。
即界面层:数据的收集与显示,结果以entity传放到逻辑层。
逻辑层:根据界面层的数据进行判断,选择逻辑层进行数据处理。

注:存储过程名称如参数:trantype等不要出现在界面层,逻辑层,可对每个trantype包装一下处理。


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

1,弹出窗口
(1)ClientScript.RegisterClientScriptBlock(GetType(), “AmountError”, “<script language=’javascript’>alert(‘产品最多只能打九折!’);</script>”);
?? ? 在页面前加入alert,这样执行的话会先弹出alert,因后面的还没有加载,故会出现一个空白页面,点确定之后再全部出现所有页面。
(2)ClientScript.RegisterStartupScript(GetType(), “AmountError”, “<script language=’javascript’>alert(‘产品最多只能打九折!’);</script>”);
??? 在页面后加入alert,页面加载完之后再弹出,不会有空白页面的情况。
?? 最好用(2)

2,在.CS程序中设置一个public 变量,在页面中用<%=AmountError%>,因服务器处理很快,会很快返回,出现近似局部刷新的结果。