1. 跟以前一样做界面,只是注意,把所有需要有多语言界面的文字都用label来做
2. 做完以后,在Solution Explorer里选中这个文件,选Tools->Generate Local Resource
3. 你会发现生成了一个目录,App_LocalResources;这个目录里多了一个resx的文件。比如你的aspx文件是default.aspx,它就会生成一个叫做default.aspx.resx的文件。
4. 打开这个文件看看,原来在label中的那些文字都跑到这里来了
5. 打开原来的aspx文件看看source,会发现源码变了:
<%@ Page Language="VB" MasterPageFile="'/MasterPage.master" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="Default2" title="Untitled Page" Culture="auto" meta:resourcekey="PageResource1" UICulture="auto" %>
…………
<asp:Localize ID="Localize1" runat="server" meta:resourcekey="Localize1Resource1"></asp:Localize>
*********************************************************************
如果是其他的控件上的文字,基本上也是会自动生成的。比如button和gridview的:
<asp:Button ID="Button1" runat="server" met ......
protected void Page_Load(object sender, EventArgs e)
{
getAllControlValue(this);
}
Hashtable getAllControlValue( object PageOrUserControl )
{
Hashtable rtn = new Hashtable();
foreach (Control ctr in (PageOrUserControl as Page).Controls)
{
getControlValue(ctr, rtn);
}
return rtn;
}
void getControlValue(Control ctrIn,Hashtable ht)
{
&nbs ......
导入EXCEL一般有3种方法
1.通过Excel APIl来导入(缺点,需要安装OFFICE组件,建立对象后,不容易释放,大数据量时读取速度较低)
2.通过OLEDB数据源方式读取
3.通过第三方组件来导入(推荐使用ExcelLibrary)下载地址:http://code.google.com/p/excellibrary/
同样导出EXCEL也有3种方法,和导入类似。
推荐使用第3种方法,速度快,不用装OFFICE组件,具体使用方法可以查看DEMO ......
TreeView 控件的呈现是可完全自定义的,这使得可以使用多种多样的显示样式。
若要自定义 TreeView 控件的外观,可以执行以下操作:
·指定影响控件显示和呈现的 TreeView 控件属性。
·指定一个 ImageSet 属性,该属性选择一组在运行时同控件一起呈现的内置图像。
·指定用于控制 TreeView 控件内特定 TreeNode 对象组的显示及呈现特性的各图像和样式属性。
·使用 Visual Studio 的自动套用格式功能可迅速完成一组图像和样式属性的自定义。
·为应用程序中的 TreeView 控件指定一个预定义主题或一个定义运行时显示及呈现特性的外观。
一、顶级布局属性
除了服务器控件的标准属性(如 BackColor 属性)外,TreeView 控件还公开一组提供对 TreeView 控件的外观进行精确控制的属性。
1.1、NodeIndent 属性
NodeIndent 属性指定了所有节点的缩进量级。节点会从呈现 TreeView 控件的一侧缩进。对于从左向右呈现的区域设置而言,这是指左侧,而对于从右向左呈现的区域设置而言,这是指右侧。
1.2、NodeWrap 属性
NodeWrap 属性指定每个节点中显示的文本在空间不足时是换到下一行的开 ......
JavaScript调用dataTable并获取其值(ASP.Net,VS2005)
本功能主要用到http://www.cnblogs.com/Hdsome/archive/2008/06/26/1230177.html这个兄弟的代码,我主要是做整理和扩展。
首先在http://www.codeplex.com/AjaxPro/Release/ProjectReleases.aspx?ReleaseId=713网址下载6.10.6.2_DLL.zip 压缩,运行其中的AjaxProVSTemplate.vsi(必须有VS2005环境),然后将AjaxPro.2.dll拷贝到bin目录下
以下是需要修改的地方:
1、修改web.config
在system.web节点下添加
<system.web>
<httpHandlers>
<add verb="POST,GET" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro.2"/>
</httpHandlers>
2、在.NET方法中向客户端注册javascript,用以javascript使用
namespace MyDemo
{
public class _Default
{
protected void Page_Load(object sender, EventArgs e)
{
AjaxPro.Utilit ......
JavaScript调用dataTable并获取其值(ASP.Net,VS2005)
本功能主要用到http://www.cnblogs.com/Hdsome/archive/2008/06/26/1230177.html这个兄弟的代码,我主要是做整理和扩展。
首先在http://www.codeplex.com/AjaxPro/Release/ProjectReleases.aspx?ReleaseId=713网址下载6.10.6.2_DLL.zip 压缩,运行其中的AjaxProVSTemplate.vsi(必须有VS2005环境),然后将AjaxPro.2.dll拷贝到bin目录下
以下是需要修改的地方:
1、修改web.config
在system.web节点下添加
<system.web>
<httpHandlers>
<add verb="POST,GET" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro.2"/>
</httpHandlers>
2、在.NET方法中向客户端注册javascript,用以javascript使用
namespace MyDemo
{
public class _Default
{
protected void Page_Load(object sender, EventArgs e)
{
AjaxPro.Utilit ......
这里指的单点,泛指在WEB服务端,一个账户同一时刻只能存在一个票据!
大家开发中可能都碰到的一个问题,怎么使同一个用户,在同一时间内只允许登录一次。
很多人都会想到在数据库中用一个标识字段,登录进去置1,退出置0,登录时判断这个字段,如果是1就说明此用户在线,不允许登录,这个方案看似有效,但在实际使用中发现问题很多,比如,用户不是通过程序中的退出按纽退出,而是直接关闭IE,这样的话,下次登录时数据库里此用户还在线呢,这个用户就无法登录,当然也有一些办法可以解决这个问题:增加一个定时作业,定期复位那些长时间在线的用户,这样又会造成一些问题,如果这个用户实际上就是使用了这么长时间,那就是误杀。
通过多次实验,发现.net本身可以提供这种解决方案。步骤如下:
第一:建立global.asax文件, Session_End 事件中写入如下代码:
Hashtable h = (Hashtable)Application["online"];
if (h[Session.SessionID] != null)
&nbs ......