社区
嵌入开发(WinCE)
帖子详情
dataGrid 为啥不能编辑 (数据不能录入)?
maliguo_net
2003-08-19 08:58:23
dataGrid 为啥不能编辑 (数据不能录入)?
...全文
122
7
打赏
收藏
dataGrid 为啥不能编辑 (数据不能录入)?
dataGrid 为啥不能编辑 (数据不能录入)?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
blue2moon
2004-01-04
打赏
举报
回复
就用这个方法:
用textbox放在grid某一位置输入后将内容赋值给grid
aawolf
2004-01-04
打赏
举报
回复
http://www.csdn.net/develop/author/netauthor/aawolf/
在Pocket PC应用程序中使用DataGrid控件 (翻译)
maliguo_net
2003-08-22
打赏
举报
回复
不是,做嵌入式系统开发(pda)
qxin2002
2003-08-20
打赏
举报
回复
evb中的gridctrl是不能编辑的,如果要修改和录入最好用textbox放在grid某一位置输入后将内容赋值给grid
fly_miss
2003-08-20
打赏
举报
回复
你們是在做asp.net嗎?
maliguo_net
2003-08-20
打赏
举报
回复
我是在net 2003 中,用的是c# ,不能编辑datagrid 控件
有谁做过吗?
maliguo_net
2003-08-19
打赏
举报
回复
也不能修改
VB利用
DataGrid
控件辅助
录入
MSHFlexGrid
数据
一个标准的VB
编辑
控件,VB利用
DataGrid
控件辅助
录入
数据
,当输入
数据
并按下 ENTER 键,或用鼠标单击MSHFlexGrid控件中的另一个单元时,焦点将返回此控件。这时 TextBox 中的文本被复制到活动单元中。ESC:隐藏焦点并将其返回 MSFlexGrid。演示格式化Flex1表的第7列、第8列、第9列、第11列
数据
,代码中添加一个例程以初始化文本框,并将焦点从 Hierarchical FlexGrid 传递到 TextBox 控件,使用已输入的字符,其它所有字符表示取代当前的文本,在合适的位置显示 Edt。 运行环境:VB6+Access
ASP.NET程序中常用的三十三种代码
1. 打开新的窗口并传送参数: 2.为按钮添加对话框 3.删除表格选定记录 4.删除表格记录警告 5.点击表格行链接另一页 6.表格超连接列传递参数 7.表格点击改变颜色 8.关于日期格式 9.获取错误信息并到指定页面 10.清空Cookie 11.自定义异常处理 12.Panel 横向滚动,纵向自动扩展 13.回车转换成Tab 14.
DataGrid
超级连接列 15.
DataGrid
行随鼠标变色 16.模板列 17.数字格式化 18.日期格式化 19.如何设定全局变量 20.怎样作到HyperLinkColumn生成的连接后,点击连接,打开新窗口? 21.读取
DataGrid
控件TextBox值 23.在
DataGrid
中有3个模板列包含Textbox分别为 DG_ShuLiang (数量) DG_DanJian(单价) DG_JinE(金额)分别在5.6.7列,要求在
录入
数量及单价的时候自动算出金额即:数量*单价=金额还要求
录入
时限制为 数值型.我如何用客户端脚本实现这个功能? 24.
datagrid
选定比较底下的行时,为什么总是刷新一下,然后就滚动到了最上面,刚才选定的行因屏幕的关系就看不到了。 25.在
Datagrid
中修改
数据
,当点击
编辑
键时,
数据
出现在文本框中,怎么控制文本框的大小 ? 26.对话框 27. 将时间格式化:string aa=DateTime.Now.ToString("yyyy年MM月dd日"); 28.自定义分页代码: 29.
DataGrid
使用: 30.当文件在不同目录下,需要获取
数据
库连接字符串(如果连接字符串放在Web.config,然后在Global.asax中初始化) 31. 变量.ToString() 32、变量.Substring(参数1,参数2); 33.在自己的网站上登陆其他网站:(如果你的页面是通过嵌套方式的话,因为一个页面只能有一个FORM,这时可以导向另外一个页面再提交登陆信息)
蓝焰设计站图文管理系统
蓝焰设计站图文管理系统 论文 ASP.NET的网站新闻管理系统设计与实现 【摘要】利用ASP.NET和ADO.NET技术开发的网站新闻管理系统,实现了网站新闻的动态管理,使得对信息的管理更加及时、高效,提高了工作效率。同时对系统的开发原理、系统的功能特点和设计方案进行了介绍。 【关键词】ASP.NET ADO.NET 新闻 管理
数据
库 随着Internet的普及,越来越多的企业建立了自己的WWW网站,企业通过网站可以展示产品,发布最新动态,与用户进行交流和沟通,与合作伙伴建立联系,以及开展电子商务等。其中新闻管理系统是构成企业网站的一个重要组成部分,它担负着双层作用,一方面可以用来动态发布有关新产品或新开发项目,另一方面又可以及时向顾客公告企业经营业绩、技术与研发进展、特别推荐或优惠的工程项目、产品和服务,从而吸引顾客,扩大顾客群。 传统的网站新闻管理方式有两种,一是静态HTML页面,更新信息时需要重新制作页面然后上传页面并修改相应链接,这种方式因为效率太低已不多用。二是基于ASP和脚本语言,将动态网页和
数据
库结合,通过应用程序来处理新闻,这是目前较为流行的做法。但是由于ASP本身的局限性使得系统有一些不可克服的缺陷,而采取了ASP.NET技术的系统性能上有了很大的改善,其主要表现在以下几方面: 1.由于ASP页面每次打开都必须经过先编译后解释的过程,所以页面在反复打开时速度没有任何提升,而ASP.NET页面只需要一次编译后不需要重新编译,直到该页面被修改或Web应用程序重新启动。这使得在多次访问时速度有了极大的提升。 2.由于ASP没有提供任何输出
数据
为内容的元件,所以在使用ASP撰写
数据
库页面时只能借助ADO的RecordSet对象逐笔读取记录,而ASP.NET通过ADO.NET提供的
DataGrid
等
数据
库元件可以直接和
数据
库联系。 3.ASP.NET支持应用程序的实时更新。管理员不必关掉网络服务器或者甚至不用停止应用程序的运行就可以更新应用文件。应用程序文件永远不会被加锁,因此甚至在程序运行时文件就可以被覆盖。当文件更新后,系统会温和地转换到新的版本。 4.ASP.NET采取"code-behind"方式编写代码使得代码更易于编写,结构更清晰,降低了系统的开发与维护的复杂度和费用。 1系统的开发原理 1.1 基于ASP.NET技术的系统结构模型 ASP.NET结构是一个三层系统:UI层、业务逻辑层和
数据
层,如图1所示。 图1 ASP.NET的系统结构模型 UI层负责与用户交互,接收用户的输入并将服务器端传来的
数据
呈现给客户。 业务逻辑层负责接收浏览器传来的请求并将请求传给
数据
层,同时将请求处理结果发给浏览器。它由Web表单、XML Web服务和组件服务组成。其中Web表单是ASP.NET应用程序的核心所在,它是向客户呈现
数据
和信息的基础,也是响应和处理客户与显示的Web表单交互生成的信息和
数据
的基础。
数据
层是通过ADO.NET操纵
数据
为事务逻辑层提供
数据
服务,如存储
数据
操作结果、返回
数据
检索结果等。 1.2 ADO.NET访问
数据
库的原理 与
数据
库相连,ADO.NET提供了如下3种方式:通过ODBC相连;通过OLEDB相连;直接与SQL Server相连。3种方式由于应用层次的差异,使得效率由低到高,独立性由高到低。对于相连
数据
库的
数据
处理,也有2种方式,即一种是通过DataSet来隔离异构的
数据
源,另一种是以流方式从
数据
源读取(DataReader方式)。 传统的应用程序是通过先建立到
数据
库的连接,在程序的整个运行过程中维护连接的方式来设计的。ASP.NET采取了断开连接方式的
数据
结构。当浏览器向Web服务器请求网页时,服务器处理这个请求,并将所请求的网页发送给浏览器,然后连接就被断开,直到浏览器发出下一个请求。 ADO.NET的另一个创新是引入了
数据
集(Dataset)。一个
数据
集是内存中提供
数据
关系图的高速缓冲区。
数据
集对
数据
源一无所知,它们可以由程序或通过从
数据
仓库中调入
数据
而被生成、填充。不论
数据
从何处获取,
数据
集都是通过使用同样的程序模板而被操作的,并且它使用相同的潜在的
数据
缓冲区。 2 系统的功能设计 2.1 系统的功能结构 该新闻管理系统可以在Windows 2000 Server操作系统平台上运行,Web服务器为IIS,
数据
库服务器为Microsoft SQL Server2000,开发工具采用的Microsoft Visual Studio .NET和DreamWeaver。图2给出系统的功能结构图。其工作流程为:用户登录通过权限判断,普通用户只能浏览、阅读和查询新闻,注册用户除了可以完成普通用户的操作外,还可以进入新闻管理模块进行新闻
录入
、修改和删除的操作。注册用户除系统管理员外只能对自己
录入
的新闻进行删改操作。 2.2 系统的功能特点 (1)操作简单、界面友好:完全控件式的页面布局,使得新闻的
录入
工作更简便;许多选项包括新闻类别、来源部门等只需要点击鼠标就可以完成;另外,跟踪出现的提示信息也让用户随时清楚自己的操作情况。 (2)即时可见:对新闻的处理(包括
录入
、修改、删除)将立即在主页的对应栏目显示出来,达到"即时发布、即时见效"的功能。 图2 系统功能结构图 (3)功能完善:包括常见网站的新闻管理的各个方面:新闻
录入
、浏览、删除、修改、检索等各个方面,完整地实现了网站对即时新闻的管理要求。 (4)方便移植:针对不同的企业,只需要稍作修改就可以开发出适合本企业特点的网站新闻管理系统! 3 系统的详细设计 系统的主要功能是通过几个功能模块来实现的。具体的设计过程如下: ⑴ 系统登录:该模块负责将用户分为普通用户和注册用户来实现用户权限的管理。 ⑵ 新闻浏览:该模块负责分页列出网站所有新闻的信息,包括标题、类型、来源部门字段及发布日期,每条新闻的标题被做成一个超链接,点击它们就能跳转页面进行新闻阅读。 ⑶ 新闻阅读:在其他页面中点击标题链接即进入新闻阅读页面,此时,每条新闻的详细信息将被取出,包括内容、标题、关键字等,并按照相对固定的格式放置在页面的不同区域,所有新闻使用大致相同的页面布局,只是各字段对应的内容不同而已,另外,页面其它位置,可以动态放置其他元件,如网站标志logo、页面广告banner等链接图片,这样可以很容易地实现图文并茂的阅读效果。 ⑷ 新闻查询:该模块提供了新闻查询功能,输入待查找的内容及选定分类信息可以快速地找到符合条件的新闻,并输出查询结果。 ⑸ 新闻管理:该模块负责分页罗列登录的注册用户曾发布过且未删除的新闻信息,用户可以对该条新闻进行删除、修改。非新闻发布者除系统管理员外不具有对该条新闻的处理权限,所以不同用户进入此页面将显示不同的内容。 ⑹ 新闻
录入
和修改:注册用户
录入
一条新闻所需要的内容,包含标题、关键字、类型、来源部门、发布日期等,同时从登录模块得到用户名,这些信息将被写入
数据
库中保存。该模块还负责
编辑
状态下的更新,这时,它将根据取得的Title字段值对页面控件初始化。 下面以系统登录页面的编写为例给出主要事件和函数,说明该系统的开发过程。 //IsRegUserOk函数:判断用户是否已经注册和密码是否正确 public bool IsRegUserOk() { string name=TextBoxName.Text.Trim(); string pwd=TextBoxPassword.Text.Trim(); //建立/打开
数据
库连接 SqlConnection conn=new SqlConnection(); conn.ConnectionString="server=(local);uid=sa;pwd=;database=jxdb"; conn.Open(); //建立sql字符串 string sql="select * from reg where name='"+name+"'"; SqlDataReader dr; SqlCommand cmd=new SqlCommand(sql,conn); dr=cmd.ExecuteReader(); //保留用户注册与否信息 bool isRegUserExist=dr.Read(); //关闭DataReader dr.Close(); //取得用户名的密码 string sqlBoth="select * from reg where name='"+name+"'"; sqlBoth+="and pwd='"+pwd+"'"; SqlCommand cmdBoth=new SqlCommand(sqlBoth,conn); SqlDataReader drBoth; drBoth=cmdBoth.ExecuteReader(); //保留用户名+密码同时存在信息 bool isBothExist=drBoth.Read(); //关闭DataReader drBoth.Close(); conn.Close(); //判断用户是否注册 if(!isRegUserExist) { Response.Write("<script>alert('此用户尚未注册!')"); return false; } //判断用户名与密码是否一致 else if(!isBothExist) { Response.Write("<script>alert('用户名和密码不一致,
不能
进入!')"); return false; } else return true; } 最后给出系统后端
数据
存储方案: 利用Microsoft SQL Server 2000建立
数据
库及其存储过程。这里给出两个必需的
数据
表,一是
数据
表News包含的字段有:编号、姓名、标题、关键字、内容、类型、来源部门和日期。字段说明如下: 二是
数据
表Reg包含的字段有:编号、姓名、密码、所属部门、电子邮箱和电话。字段说明如下: 参考文献 [1]天极网新技术研究室.《ASP.NET完全入门》.重庆出版社,2001 [2]Scott Worley著.《ASP.NET技术内幕》.王文龙 刘湘宁译.人民邮电出版社,2002 [3]Sanjeev Rohilla, Senthil Nathan, Surbhi Malhotra著.《ADO.NET专业项目实例开发》.陈君 王宝良译.中国水利水电出版社,2003 [4]丁晟春 王曰芬.网站新闻发布管理系统的设计与应用.现代图书情报技术.2002,5 [5] 手机铃声下载 网站优化网站推广 免费论文下载 职称论文下载
ASP.NET程序中常用的三十三种代码.txt
ASP.NET程序中常用的三十三种代码 1. 打开新的窗口并传送参数: 传送参数: response.write("window.open(’*.aspx?id="+this.DropDownList1.SelectIndex+"&id1="+...+"’)") 接收参数: string a = Request.QueryString("id"); string b = Request.QueryString("id1"); 2.为按钮添加对话框 Button1.Attributes.Add("onclick","return confirm(’确认?’)"); button.attributes.add("onclick","if(confirm(’are you sure...?’)){return true;}else{return false;}") 3.删除表格选定记录 int intEmpID = (int)My
DataGrid
.DataKeys[e.Item.ItemIndex]; string deleteCmd = "DELETE from Employee where emp_id = " + intEmpID.ToString() 4.删除表格记录警告 private void
DataGrid
_ItemCreated(Object sender,
DataGrid
ItemEventArgs e) { switch(e.Item.ItemType) { case ListItemType.Item : case ListItemType.AlternatingItem : case ListItemType.EditItem: TableCell myTableCell; myTableCell = e.Item.Cells[14]; LinkButton myDeleteButton ; myDeleteButton = (LinkButton)myTableCell.Controls[0]; myDeleteButton.Attributes.Add("onclick","return confirm(’您是否确定要删除这条信息’);"); break; default: break; } } 5.点击表格行链接另一页 private void grdCustomer_ItemDataBound(object sender, System.Web.UI.WebControls.
DataGrid
ItemEventArgs e) { //点击表格打开 if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) e.Item.Attributes.Add("onclick","window.open(’Default.aspx?id=" + e.Item.Cells[0].Text + "’);"); } 双击表格连接到另一页 在itemDataBind事件中 if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { string OrderItemID =e.item.cells[1].Text; ... e.item.Attributes.Add("ondblclick", "location.href=’../ShippedGrid.aspx?id=" + OrderItemID + "’"); } 双击表格打开新一页 if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { string OrderItemID =e.item.cells[1].Text; ... e.item.Attributes.Add("ondblclick", "open(’../ShippedGrid.aspx?id=" + OrderItemID + "’)"); } ★特别注意:【?id=】 处
不能
为 【?id =】 6.表格超连接列传递参数
DataGrid的_ItemDataBound里 if (e.Item.ItemType == ListItemType.Item ||e.Item.ItemType == ListItemType.AlternatingItem) { e.Item.Attributes.Add("onmouseover","this.style.backgroundColor=’#99cc00’; this.style.color=’buttontext’;this.style.cursor=’default’;"); e.Item.Attributes.Add("onmouseout","this.style.backgroundColor=’’;this.style.color=’’;"); } 8.关于日期格式 日期格式设定 DataFormatString="{0:yyyy-MM-dd}" 我觉得应该在itembound事件中 e.items.cell["你的列"].text=DateTime.Parse(e.items.cell["你的列"].text.ToString("yyyy-MM-dd")) 9.获取错误信息并到指定页面 不要使用Response.Redirect,而应该使用Server.Transfer e.g // in global.asax protected void Application_Error(Object sender, EventArgs e) { if (Server.GetLastError() is HttpUnhandledException) Server.Transfer("MyErrorPage.aspx"); //其余的非HttpUnhandledException异常交给ASP.NET自己处理就okay了 :) } Redirect会导致post-back的产生从而丢失了错误信息,所以页面导向应该直接在服务器端执行,这样就可以在错误处理页面得到出错信息并进行相应的处理 10.清空Cookie Cookie.Expires=[DateTime]; Response.Cookies("UserName").Expires = 0 11.自定义异常处理 //自定义异常处理类 using System; using System.Diagnostics; namespace MyAppException { /// /// 从系统异常类ApplicationException继承的应用程序异常处理类。 /// 自动将异常内容记录到Windows NT/2000的应用程序日志 /// public class AppException:System.ApplicationException { public AppException() { if (ApplicationConfiguration.EventLogEnabled)LogEvent("出现一个未知错误。"); } public AppException(string message) { LogEvent(message); } public AppException(string message,Exception innerException) { LogEvent(message); if (innerException != null) { LogEvent(innerException.Message); } } //日志记录类 using System; using System.Configuration; using System.Diagnostics; using System.IO; using System.Text; using System.Threading; namespace MyEventLog { /// /// 事件日志记录类,提供事件日志记录支持 /// /// 定义了4个日志记录方法 (error, warning, info, trace) /// /// public class ApplicationLog { /// /// 将错误信息记录到Win2000/NT事件日志中 /// 需要记录的文本信息 /// public static void WriteError(String message) { WriteLog(TraceLevel.Error, message); } /// /// 将警告信息记录到Win2000/NT事件日志中 /// 需要记录的文本信息 /// public static void WriteWarning(String message) { WriteLog(TraceLevel.Warning, message); } /// /// 将提示信息记录到Win2000/NT事件日志中 /// 需要记录的文本信息 /// public static void WriteInfo(String message) { WriteLog(TraceLevel.Info, message); } /// /// 将跟踪信息记录到Win2000/NT事件日志中 /// 需要记录的文本信息 /// public static void WriteTrace(String message) { WriteLog(TraceLevel.Verbose, message); } /// /// 格式化记录到事件日志的文本信息格式 /// 需要格式化的异常对象 /// 异常信息标题字符串. /// /// 格式后的异常信息字符串,包括异常内容和跟踪堆栈. /// /// public static String FormatException(Exception ex, String catchInfo) { StringBuilder strBuilder = new StringBuilder(); if (catchInfo != String.Empty) { strBuilder.Append(catchInfo).Append("\r\n"); } strBuilder.Append(ex.Message).Append("\r\n").Append(ex.StackTrace); return strBuilder.ToString(); } /// /// 实际事件日志写入方法 /// 要记录信息的级别(error,warning,info,trace). /// 要记录的文本. /// private static void WriteLog(TraceLevel level, String messageText) { try { EventLogEntryType LogEntryType; switch (level) { case TraceLevel.Error: LogEntryType = EventLogEntryType.Error; break; case TraceLevel.Warning: LogEntryType = EventLogEntryType.Warning; break; case TraceLevel.Info: LogEntryType = EventLogEntryType.Information; break; case TraceLevel.Verbose: LogEntryType = EventLogEntryType.SuccessAudit; break; default: LogEntryType = EventLogEntryType.SuccessAudit; break; } EventLog eventLog = new EventLog("Application", ApplicationConfiguration.EventLogMachineName, ApplicationConfiguration.EventLogSourceName ); //写入事件日志 eventLog.WriteEntry(messageText, LogEntryType); } catch {} //忽略任何异常 } } //class ApplicationLog } 12.Panel 横向滚动,纵向自动扩展 13.回车转换成Tab if (event.keyCode==13 && event.srcElement.type!=’button’ && event.srcElement.type! =’submit’ && event.srcElement.type!=’reset’ && event.srcElement.type!=’’&& event.srcElement.type!=’textarea’); event.keyCode=9; onkeydown="if(event.keyCode==13) event.keyCode=9" 14.
DataGrid
超级连接列 DataNavigateUrlField="字段名" DataNavigateUrlFormatString="http://xx/inc/delete.aspx?ID={0}" 15.
DataGrid
行随鼠标变色 private void DGzf_ItemDataBound(object sender, System.Web.UI.WebControls.
DataGrid
ItemEventArgs e) { if (e.Item.ItemType!=ListItemType.Header) { e.Item.Attributes.Add( "onmouseout","this.style.backgroundColor=\""+e.Item.Style["BACKGROUND-COLOR"]+"\""); e.Item.Attributes.Add( "onmouseover","this.style.backgroundColor=\""+ "#EFF3F7"+"\""); } } 16.模板列
后台代码 protected void CheckAll_CheckedChanged(object sender, System.EventArgs e) { //改变列的选定,实现全选或全不选。 CheckBox chkExport ; if( CheckAll.Checked) { foreach(
DataGrid
Item o
DataGrid
Item in My
DataGrid
.Items) { chkExport = (CheckBox)o
DataGrid
Item.FindControl("chkExport"); chkExport.Checked = true; } } else { foreach(
DataGrid
Item o
DataGrid
Item in My
DataGrid
.Items) { chkExport = (CheckBox)o
DataGrid
Item.FindControl("chkExport"); chkExport.Checked = false; } } } 17.数字格式化 【的结果是500.0000,怎样格式化为500.00?】 int i=123456; string s=i.ToString("###,###.00"); 18.日期格式化 【aspx页面内: 显示为: 2004-8-11 19:44:28 我只想要:2004-8-11 】 应该如何改? 【格式化日期】 取出来,一般是 object((DateTime)objectFromDB).ToString("yyyy-MM-dd"); 【日期的验证表达式】 A.以下正确的输入格式: [2004-2-29], [2004-02-29 10:29:39 pm], [2004/12/31] ^((\d{2}(([02468][048])|([13579][26]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|([1-2][0-9])))))|(\d{2}(([02468][1235679])|([13579][01345789]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(\s(((0?[1-9])|(1[0-2]))\:([0-5][0-9])((\s)|(\:([0-5][0-9])\s))([AM|PM|am|pm]{2,2})))?$ B.以下正确的输入格式:[0001-12-31], [9999 09 30], [2002/03/03] ^\d{4}[\-\/\s]?((((0[13578])|(1[02]))[\-\/\s]?(([0-2][0-9])|(3[01])))|(((0[469])|(11))[\-\/\s]?(([0-2][0-9])|(30)))|(02[\-\/\s]?[0-2][0-9]))$ 【大小写转换】 HttpUtility.HtmlEncode(string); HttpUtility.HtmlDecode(string) 19.如何设定全局变量 Global.asax中 Application_Start()事件中 添加Application[属性名] = xxx; 就是你的全局变量 20.怎样作到HyperLinkColumn生成的连接后,点击连接,打开新窗口? HyperLinkColumn有个属性Target,将器值设置成"_blank"即可.(Target="_blank") 【ASPNETMENU】点击菜单项弹出新窗口 在你的menuData.xml文件的菜单项中加入URLTarget="_blank",如: ...... 最好将你的aspnetmenu升级到1.2版 21.读取
DataGrid
控件TextBox值 foreach(
DataGrid
dgi in your
DataGrid
.Items) { TextBox tb = (TextBox)dgi.FindControl("yourTextBoxId"); tb.Text.... } 23.在
DataGrid
中有3个模板列包含Textbox分别为 DG_ShuLiang (数量) DG_DanJian(单价) DG_JinE (金额)分别在5.6.7列,要求在
录入
数量及单价的时候自动算出金额即:数量*单价=金额还要求
录入
时限制为 数值型.我如何用客户端脚本实现这个功能? 〖思归〗
function DoCal() { var e = event.srcElement; var row = e.parentNode.parentNode; var txts = row.all.tags("INPUT"); if (!txts.length || txts.length < 3) return; var q = txts[txts.length-3].value; var p = txts[txts.length-2].value; if (isNaN(q) || isNaN(p)) return; q = parseInt(q); p = parseFloat(p); txts[txts.length-1].value = (q * p).toFixed(2); } 24.
datagrid
选定比较底下的行时,为什么总是刷新一下,然后就滚动到了最上面,刚才选定的行因屏幕的关系就看不到了。 page_load page.smartNavigation=true 25.在
Datagrid
中修改
数据
,当点击
编辑
键时,
数据
出现在文本框中,怎么控制文本框的大小 ? private void
DataGrid
1_ItemDataBound(obj sender,
DataGrid
ItemEventArgs e) { for(int i=0;i
DataGrid1.CurrentPageIndex 0) {
DataGrid
1.CurrentPageIndex += 1; curPageIndex-=1; } bind(); //
DataGrid
1
数据
绑定函数 直接页面跳转: int a=int.Parse(JumpPage.Value.Trim());//JumpPage.Value.Trim()为跳转值 if(a<
DataGrid
1.PageCount) { this.
DataGrid
1.CurrentPageIndex=a; } bind(); 29.
DataGrid
使用: 添加删除确认: private void
DataGrid
1_ItemCreated(object sender, System.Web.UI.WebControls.
DataGrid
ItemEventArgs e) { foreach(
DataGrid
Item di in this.
DataGrid
1.Items) { if(di.ItemType==ListItemType.Item||di.ItemType==ListItemType.AlternatingItem) { ((LinkButton)di.Cells[8].Controls[0]).Attributes.Add("onclick","return confirm(’确认删除此项吗?’);"); } } } 样式交替: ListItemType itemType = e.Item.ItemType; if (itemType == ListItemType.Item ) { e.Item.Attributes["onmouseout"] = "javascript:this.style.backgroundColor=’#FFFFFF’;"; e.Item.Attributes["onmouseover"] = "javascript:this.style.backgroundColor=’#d9ece1’;cursor=’hand’;" ; } else if( itemType == ListItemType.AlternatingItem) { e.Item.Attributes["onmouseout"] = "javascript:this.style.backgroundColor=’#a0d7c4’;"; e.Item.Attributes["onmouseover"] = "javascript:this.style.backgroundColor=’#d9ece1’;cursor=’hand’;" ; } 添加一个编号列: DataTable dt= c.ExecuteRtnTableForAccess(sqltxt); //执行sql返回的DataTable DataColumn dc=dt.Columns.Add("number",System.Type.GetType("System.String")); for(int i=0;i
DataGrid1.DataSource=dt;
DataGrid
1.DataBind();
DataGrid
1中添加一个CheckBox,页面中添加一个全选框 private void CheckBox2_CheckedChanged(object sender, System.EventArgs e) { foreach(
DataGrid
Item thisitem in
DataGrid
1.Items) { ((CheckBox)thisitem.Cells[0].Controls[1]).Checked=CheckBox2.Checked; } } 将当前页面中
DataGrid
1显示的
数据
全部删除 foreach(
DataGrid
Item thisitem in
DataGrid
1.Items) { if(((CheckBox)thisitem.Cells[0].Controls[1]).Checked) { string strloginid=
DataGrid
1.DataKeys[thisitem.ItemIndex].ToString(); Del (strloginid); //删除函数 } } 30.当文件在不同目录下,需要获取
数据
库连接字符串(如果连接字符串放在Web.config,然后在Global.asax中初始化) 在Application_Start中添加以下代码: Application["ConnStr"]=this.Context.Request.PhysicalApplicationPath+ConfigurationSettings. AppSettings["ConnStr"].ToString(); 31. 变量.ToString() 字符型转换 转为字符串 12345.ToString("n"); //生成 12,345.00 12345.ToString("C"); //生成 ¥12,345.00 12345.ToString("e"); //生成 1.234500e+004 12345.ToString("f4"); //生成 12345.0000 12345.ToString("x"); //生成 3039 (16进制) 12345.ToString("p"); //生成 1,234,500.00% 32、变量.Substring(参数1,参数2); 截取字串的一部分,参数1为左起始位数,参数2为截取几位。 如:string s1 = str.Substring(0,2); 33.在自己的网站上登陆其他网站:(如果你的页面是通过嵌套方式的话,因为一个页面只能有一个FORM,这时可以导向另外一个页面再提交登陆信息) 文本框的名称必须是你要登陆的网页上的名称,如果源码不行可以用vsniffer 看看。 下面是获取用户输入的登陆信息的代码: string name; name=Request.QueryString["EmailName"]; try { int a=name.IndexOf("@",0,name.Length); f_user.Value=name.Substring(0,a); f_domain.Value=name.Substring(a+1,name.Length-(a+1)); f_pass.Value=Request.QueryString["Psw"]; } catch { Script.Alert("错误的邮箱!"); Server.Transfer("index.aspx"); }
ASP.NET常用代码
ASP.NET常用代码 1. 打开新的窗口并传送参数: 传送参数: response.write("<script>window.open('*.aspx?id="+this.DropDownList1.SelectIndex+"&id1="+...+"')DataGrid.DataKeys[e.Item.ItemIndex]; string deleteCmd = "DELETE from Employee where emp_id = " + intEmpID.ToString() 4.删除表格记录警告 private void
DataGrid
_ItemCreated(Object sender,
DataGrid
ItemEventArgs e) { switch(e.Item.ItemType) { case ListItemType.Item : case ListItemType.AlternatingItem : case ListItemType.EditItem: TableCell myTableCell; myTableCell = e.Item.Cells[14]; LinkButton myDeleteButton ; myDeleteButton = (LinkButton)myTableCell.Controls[0]; myDeleteButton.Attributes.Add("onclick","return confirm('您是否确定要删除这条信息');"); break; default: break; } } 5.点击表格行链接另一页 private void grdCustomer_ItemDataBound(object sender, System.Web.UI.WebControls.
DataGrid
ItemEventArgs e) { //点击表格打开 if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) e.Item.Attributes.Add("onclick","window.open('Default.aspx?id=" + e.Item.Cells[0].Text + "');"); } 双击表格连接到另一页 在itemDataBind事件中 if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { string OrderItemID =e.item.cells[1].Text; ... e.item.Attributes.Add("ondblclick", "location.href='../ShippedGrid.aspx?id=" + OrderItemID + "'"); } 双击表格打开新一页 if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { string OrderItemID =e.item.cells[1].Text; ... e.item.Attributes.Add("ondblclick", "open('../ShippedGrid.aspx?id=" + OrderItemID + "')"); } ★特别注意:【?id=】 处
不能
为 【?id =】 6.表格超连接列传递参数
数据字段1")%>' & name='<%# DataBinder.Eval(Container.DataItem, "
数据
字段2")%>' /> 7.表格点击改变颜色 if (e.Item.ItemType == ListItemType.Item ||e.Item.ItemType == ListItemType.AlternatingItem) { e.Item.Attributes.Add("onclick","this.style.backgroundColor='#99cc00';this.style.color='buttontext';this.style.cursor='default';"); } 写在
DataGrid
的_ItemDataBound里 if (e.Item.ItemType == ListItemType.Item ||e.Item.ItemType == ListItemType.AlternatingItem) { e.Item.Attributes.Add("onmouseover","this.style.backgroundColor='#99cc00';this.style.color='buttontext';this.style.cursor='default';"); e.Item.Attributes.Add("onmouseout","this.style.backgroundColor='';this.style.color='';"); } 8.关于日期格式 日期格式设定 DataFormatString="{0:yyyy-MM-dd}" 我觉得应该在itembound事件中 e.items.cell["你的列"].text=DateTime.Parse(e.items.cell["你的列"].text.ToString("yyyy-MM-dd")) 9.获取错误信息并到指定页面 不要使用Response.Redirect,而应该使用Server.Transfer e.g // in global.asax protected void Application_Error(Object sender, EventArgs e) { if (Server.GetLastError() is HttpUnhandledException) Server.Transfer("MyErrorPage.aspx"); //其余的非HttpUnhandledException异常交给ASP.NET自己处理就okay了 :) } Redirect会导致post-back的产生从而丢失了错误信息,所以页面导向应该直接在服务器端执行,这样就可以在错误处理页面得到出错信息并进行相应的处理 10.清空Cookie Cookie.Expires=[DateTime]; Response.Cookies("UserName").Expires = 0 11.自定义异常处理 //自定义异常处理类 using System; using System.Diagnostics; namespace MyAppException { ///
/// 从系统异常类ApplicationException继承的应用程序异常处理类。 /// 自动将异常内容记录到Windows NT/2000的应用程序日志 ///
public class AppException:System.ApplicationException { public AppException() { if (ApplicationConfiguration.EventLogEnabled) LogEvent("出现一个未知错误。"); } public AppException(string message) { LogEvent(message); } public AppException(string message,Exception innerException) { LogEvent(message); if (innerException != null) { LogEvent(innerException.Message); } } //日志记录类 using System; using System.Configuration; using System.Diagnostics; using System.IO; using System.Text; using System.Threading; namespace MyEventLog { ///
/// 事件日志记录类,提供事件日志记录支持 ///
/// 定义了4个日志记录方法 (error, warning, info, trace) ///
///
public class ApplicationLog { ///
/// 将错误信息记录到Win2000/NT事件日志中 ///
需要记录的文本信息 ///
public static void WriteError(String message) { WriteLog(TraceLevel.Error, message); } ///
/// 将警告信息记录到Win2000/NT事件日志中 ///
需要记录的文本信息 ///
public static void WriteWarning(String message) { WriteLog(TraceLevel.Warning, message); } ///
/// 将提示信息记录到Win2000/NT事件日志中 ///
需要记录的文本信息 ///
public static void WriteInfo(String message) { WriteLog(TraceLevel.Info, message); } ///
/// 将跟踪信息记录到Win2000/NT事件日志中 ///
需要记录的文本信息 ///
public static void WriteTrace(String message) { WriteLog(TraceLevel.Verbose, message); } ///
/// 格式化记录到事件日志的文本信息格式 ///
需要格式化的异常对象 ///
异常信息标题字符串. ///
///
格式后的异常信息字符串,包括异常内容和跟踪堆栈.
///
///
public static String FormatException(Exception ex, String catchInfo) { StringBuilder strBuilder = new StringBuilder(); if (catchInfo != String.Empty) { strBuilder.Append(catchInfo).Append("\r\n"); } strBuilder.Append(ex.Message).Append("\r\n").Append(ex.StackTrace); return strBuilder.ToString(); } ///
/// 实际事件日志写入方法 ///
要记录信息的级别(error,warning,info,trace). ///
要记录的文本. ///
private static void WriteLog(TraceLevel level, String messageText) { try { EventLogEntryType LogEntryType; switch (level) { case TraceLevel.Error: LogEntryType = EventLogEntryType.Error; break; case TraceLevel.Warning: LogEntryType = EventLogEntryType.Warning; break; case TraceLevel.Inf LogEntryType = EventLogEntryType.Information; break; case TraceLevel.Verbose: LogEntryType = EventLogEntryType.SuccessAudit; break; default: LogEntryType = EventLogEntryType.SuccessAudit; break; } EventLog eventLog = new EventLog("Application", ApplicationConfiguration.EventLogMachineName, ApplicationConfiguration.EventLogSourceName ); //写入事件日志 eventLog.WriteEntry(messageText, LogEntryType); } catch {} //忽略任何异常 } } //class ApplicationLog } 12.Panel 横向滚动,纵向自动扩展
13.回车转换成Tab <script language="javascript" for="document" event="onkeydown"> if(event.keyCode==13 && event.srcElement.type!='button' && event.srcElement.type!='submit' && event.srcElement.type!='reset' && event.srcElement.type!=''&& event.srcElement.type!='textarea'); event.keyCode=9; DataGrid超级连接列 DataNavigateUrlField="字段名" DataNavigateUrlFormatString="http://xx/inc/delete.aspx?ID={0}" 15.
DataGrid
行随鼠标变色 private void DGzf_ItemDataBound(object sender, System.Web.UI.WebControls.
DataGrid
ItemEventArgs e) { if (e.Item.ItemType!=ListItemType.Header) { e.Item.Attributes.Add( "onmouseout","this.style.backgroundColor=\""+e.Item.Style["BACKGROUND-COLOR"]+"\""); e.Item.Attributes.Add( "onmouseover","this.style.backgroundColor=\""+ "#EFF3F7"+"\""); } } 16.模板列
后台代码 protected void CheckAll_CheckedChanged(object sender, System.EventArgs e) { //改变列的选定,实现全选或全不选。 CheckBox chkExport ; if( CheckAll.Checked) { foreach(
DataGrid
Item o
DataGrid
Item in My
DataGrid
.Items) { chkExport = (CheckBox)o
DataGrid
Item.FindControl("chkExport"); chkExport.Checked = true; } } else { foreach(
DataGrid
Item o
DataGrid
Item in My
DataGrid
.Items) { chkExport = (CheckBox)o
DataGrid
Item.FindControl("chkExport"); chkExport.Checked = false; } } } 17.数字格式化 【<%#Container.DataItem("price")%>的结果是500.0000,怎样格式化为500.00?】 <%#Container.DataItem("price","{0:¥#,##0.00}")%> int i=123456; string s=i.ToString("###,###.00"); 18.日期格式化 【aspx页面内:<%# DataBinder.Eval(Container.DataItem,"Company_Ureg_Date")%> 显示为: 2004-8-11 19:44:28 我只想要:2004-8-11 】 <%# DataBinder.Eval(Container.DataItem,"Company_Ureg_Date","{0:yyyy-M-d}")%> 应该如何改? 【格式化日期】 取出来,一般是object ((DateTime)objectFromDB).ToString("yyyy-MM-dd"); 【日期的验证表达式】 A.以下正确的输入格式: [2004-2-29], [2004-02-29 10:29:39 pm], [2004/12/31] ^((\d{2}(([02468][048])|([13579][26]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|([1-2][0-9])))))|(\d{2}(([02468][1235679])|([13579][01345789]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(\s(((0?[1-9])|(1[0-2]))\:([0-5][0-9])((\s)|(\:([0-5][0-9])\s))([AM|PM|am|pm]{2,2})))?$ B.以下正确的输入格式:[0001-12-31], [9999 09 30], [2002/03/03] ^\d{4}[\-\/\s]?((((0[13578])|(1[02]))[\-\/\s]?(([0-2][0-9])|(3[01])))|(((0[469])|(11))[\-\/\s]?(([0-2][0-9])|(30)))|(02[\-\/\s]?[0-2][0-9]))$ 【大小写转换】 HttpUtility.HtmlEncode(string); HttpUtility.HtmlDecode(string) 19.如何设定全局变量 Global.asax中 Application_Start()事件中 添加Application[属性名] = xxx; 就是你的全局变量 20.怎样作到HyperLinkColumn生成的连接后,点击连接,打开新窗口? HyperLinkColumn有个属性Target,将器值设置成"_blank"即可.(Target="_blank") 【ASPNETMENU】点击菜单项弹出新窗口 在你的menuData.xml文件的菜单项中加入URLTarget="_blank" 如:
...... 最好将你的aspnetmenu升级到1.2版 21.委托讨论 http://community.csdn.net/Expert/topic/2651/2651579.xml?temp=.7183191 http://dev.csdn.net/develop/article/22/22951.shtm 22.读取
DataGrid
控件TextBox值 foreach(
DataGrid
dgi in your
DataGrid
.Items) { TextBox tb = (TextBox)dgi.FindControl("yourTextBoxId"); tb.Text.... } 23.在
DataGrid
中有3个模板列包含Textbox分别为 DG_ShuLiang (数量) DG_DanJian(单价) DG_JinE(金额)分别在5.6.7列,要求在
录入
数量及单价的时候自动算出金额即:数量*单价=金额还要求
录入
时限制为数值型.我如何用客户端脚本实现这个功能? 〖思归〗
<script language="javascript"> function DoCal() { var e = event.srcElement; var row = e.parentNode.parentNode; var txts = row.all.tags("INPUT"); if (!txts.length || txts.length < 3) return; var q = txts[txts.length-3].value; var p = txts[txts.length-2].value; if (isNaN(q) || isNaN(p)) return; q = parseInt(q); p = parseFloat(p); txts[txts.length-1].value = (q * p).toFixed(2); } datagrid选定比较底下的行时,为什么总是刷新一下,然后就滚动到了最上面,刚才选定的行因屏幕的关系就看不到了 page_load page.smartNavigation=true 25.在
Datagrid
中修改
数据
,当点击
编辑
键时,
数据
出现在文本框中,怎么控制文本框的大小 ? private void
DataGrid
1_ItemDataBound(obj sender,
DataGrid
ItemEventArgs e) { for(int i=0;i
"; private static string ScriptEnd = "DataGrid1.CurrentPageIndex < (
DataGrid
1.PageCount - 1)) {
DataGrid
1.CurrentPageIndex += 1; curPageIndex+=1; } bind(); //
DataGrid
1
数据
绑定函数 上一页: if(
DataGrid
1.CurrentPageIndex >0) {
DataGrid
1.CurrentPageIndex += 1; curPageIndex-=1; } bind(); //
DataGrid
1
数据
绑定函数 直接页面跳转: int a=int.Parse(JumpPage.Value.Trim());//JumpPage.Value.Trim()为跳转值 if(a<
DataGrid
1.PageCount) { this.
DataGrid
1.CurrentPageIndex=a; } bind(); 29.
DataGrid
使用: 3.1添加删除确认: private void
DataGrid
1_ItemCreated(object sender, System.Web.UI.WebControls.
DataGrid
ItemEventArgs e) { foreach(
DataGrid
Item di in this.
DataGrid
1.Items) { if(di.ItemType==ListItemType.Item||di.ItemType==ListItemType.AlternatingItem) { ((LinkButton)di.Cells[8].Controls[0]).Attributes.Add("onclick","return confirm('确认删除此项吗?');"); } } } 3.2样式交替: ListItemType itemType = e.Item.ItemType; if (itemType == ListItemType.Item ) { e.Item.Attributes["onmouseout"] = "javascript:this.style.backgroundColor='#FFFFFF';"; e.Item.Attributes["onmouseover"] = "javascript:this.style.backgroundColor='#d9ece1';cursor='hand';" ; } else if( itemType == ListItemType.AlternatingItem) { e.Item.Attributes["onmouseout"] = "javascript:this.style.backgroundColor='#a0d7c4';"; e.Item.Attributes["onmouseover"] = "javascript:this.style.backgroundColor='#d9ece1';cursor='hand';" ; } 3.3添加一个编号列: DataTable dt= c.ExecuteRtnTableForAccess(sqltxt); //执行sql返回的DataTable DataColumn dc=dt.Columns.Add("number",System.Type.GetType("System.String")); for(int i=0;i
DataGrid1.DataSource=dt;
DataGrid
1.DataBind(); 3.4
DataGrid
1中添加一个CheckBox,页面中添加一个全选框 private void CheckBox2_CheckedChanged(object sender, System.EventArgs e) { foreach(
DataGrid
Item thisitem in
DataGrid
1.Items) { ((CheckBox)thisitem.Cells[0].Controls[1]).Checked=CheckBox2.Checked; } } 将当前页面中
DataGrid
1显示的
数据
全部删除 foreach(
DataGrid
Item thisitem in
DataGrid
1.Items) { if(((CheckBox)thisitem.Cells[0].Controls[1]).Checked) { string strloginid=
DataGrid
1.DataKeys[thisitem.ItemIndex].ToString(); Del (strloginid); //删除函数 } } 30.当文件在不同目录下,需要获取
数据
库连接字符串(如果连接字符串放在Web.config,然后在Global.asax中初始化) 在Application_Start中添加以下代码: Application["ConnStr"]=this.Context.Request.PhysicalApplicationPath+ConfigurationSettings.AppSettings["ConnStr"].ToString(); 31. 变量.ToString() 字符型转换 转为字符串 12345.ToString("n"); //生成 12,345.00 12345.ToString("C"); //生成 ¥12,345.00 12345.ToString("e"); //生成 1.234500e+004 12345.ToString("f4"); //生成 12345.0000 12345.ToString("x"); //生成 3039 (16进制) 12345.ToString("p"); //生成 1,234,500.00% 32、变量.Substring(参数1,参数2); 截取字串的一部分,参数1为左起始位数,参数2为截取几位。 如:string s1 = str.Substring(0,2); 34.在自己的网站上登陆其他网站:(如果你的页面是通过嵌套方式的话,因为一个页面只能有一个FORM,这时可以导向另外一个页面再提交登陆信息) <SCRIPT language="javascript"> <!-- function gook(pws) { frm.submit(); } //--> </SCRIPT> <body leftMargin="0" topMargin="0" onload="javascript:gook()" marginwidth="0" marginheight="0"> <form name="frm" action=" http://220.194.55.68:6080/login.php?retid=7259 " method="post"> <tr> <td> <input id="f_user" type="hidden" size="1" name="f_user" runat="server"> <input id="f_domain" type="hidden" size="1" name="f_domain" runat="server"> <input class="box" id="f_pass" type="hidden" size="1" name="pwshow" runat="server"> <INPUT id="lng" type="hidden" maxLength="20" size="1" value="5" name="lng"> <INPUT id="tem" type="hidden" size="1" value="2" name="tem"> </td> </tr> </form> 文本框的名称必须是你要登陆的网页上的名称,如果源码不行可以用vsniffer 看看。 下面是获取用户输入的登陆信息的代码: string name; name=Request.QueryString["EmailName"]; try { int a=name.IndexOf("@",0,name.Length); f_user.Value=name.Substring(0,a); f_domain.Value=name.Substring(a+1,name.Length-(a+1)); f_pass.Value=Request.QueryString["Psw"]; } catch { Script.Alert("错误的邮箱!"); Server.Transfer("index.aspx"); } 35.警告窗口 /**////
/// 服务器端弹出alert对话框 ///
///
提示信息,例子:"
不能
为空!" ///
Page类 public void Alert(string str_Message,Page page) { page.RegisterStartupScript("","<script>alert('"+str_Message+"'); /// 服务器端弹出alert对话框,并使控件获得焦点 /// ///
获得焦点控件Id值,比如:txt_Name ///
提示信息,例子:"请输入您姓名!" ///
Page类 public void Alert(string str_Ctl_Name,string str_Message,Page page) { page.RegisterStartupScript("","<script>alert('"+str_Message+"');document.forms(0)."+str_Ctl_Name+".focus(); document.forms(0)."+str_Ctl_Name+".select(); /// 服务器端弹出confirm对话框 /// ///
提示信息,例子:"您是否确认删除!" ///
隐藏Botton按钮Id值,比如:btn_Flow ///
Page类 public void Confirm(string str_Message,string btn,Page page) { page.RegisterStartupScript("","<script> if (confirm('"+str_Message+"')==true){document.forms(0)."+btn+".click();} /// 服务器端弹出confirm对话框,询问用户准备转向那些操作,包括“确定”和“取消”时的操作 /// ///
提示信息,比如:"成功增加
数据
,单击\"确定\"按钮填写流程,单击\"取消\"修改
数据
" ///
"确定"按钮id值 ///
"取消"按钮id值 ///
Page类 public void Confirm(string str_Message,string btn_Redirect_Flow,string btn_Redirect_Self,Page page) { page.RegisterStartupScript("","<script> if (confirm('"+str_Message+"')==true){document.forms(0)."+btn_Redirect_Flow+".click();}else{document.forms(0)."+btn_Redirect_Self+".click();} /// 使控件获得焦点 /// ///
获得焦点控件Id值,比如:txt_Name ///
Page类 public void GetFocus(string str_Ctl_Name,Page page) { page.RegisterStartupScript("","<script>document.forms(0)."+str_Ctl_Name+".focus(); document.forms(0)."+str_Ctl_Name+".select(); ///名称:redirect ///功能:子窗体返回主窗体 ///参数:url ///返回值:空 /// public void redirect(string url,Page page) { if ( Session["IfDefault"]!=(object)"Default") { page.RegisterStartupScript("","<script>window.top.document.location.href='"+url+"'; /// 名称:IsNumberic /// 功能:判断输入的是否是数字 /// 参数:string oText:源文本 /// 返回值: bool true:是 false:否 /// public bool IsNumberic(string oText) { try { int var1=Convert.ToInt32 (oText); return true; } catch { return false; } } 获得字符串实际长度(包括中文字符) //获得字符串oString的实际长度 public int StringLength(string oString) { byte[] strArray=System.Text .Encoding.Default .GetBytes (oString); int res=strArray.Length ; return res; } 42.将回车转换为TAB //当在有keydown事件的控件上敲回车时,变为tab public void Tab(System.Web .UI.WebControls .WebControl webcontrol) { webcontrol.Attributes .Add ("onkeydown", "if(event.keyCode==13) event.keyCode=9"); } 43.
datagrid
分页中如果删除时出现超出索引 public void jumppage(System.Web.UI.WebControls.
DataGrid
dg) { int int_PageLess; //定义页面跳转的页数 //如果当前页是最后一页 if(dg.CurrentPageIndex == dg.PageCount-1) { //如果就只有一页 if(dg.CurrentPageIndex == 0) { //删除后页面停在当前页 dg.CurrentPageIndex = dg.PageCount-1; } else { //如果最后一页只有一条记录 if((dg.Items.Count % dg.PageSize == 1) || dg.PageSize == 1) { //把最后一页最后一条记录删除后,页面应跳转到前一页 int_PageLess = 2; } else //如果最后一页的记录数大于1,那么在最后一页删除记录后仍然停在当前页 { int_PageLess = 1; } dg.CurrentPageIndex = dg.PageCount - int_PageLess; } } } 发表于 2
嵌入开发(WinCE)
19,502
社区成员
41,568
社区内容
发帖
与我相关
我的任务
嵌入开发(WinCE)
硬件/嵌入开发 嵌入开发(WinCE)
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章