非常不想用微软的控件,总感觉生出来那么多没有用的代码,很是不爽,特别是最近用js用魔了,今天特意折腾了一下空间,免得生疏了。

写了个DropDownList绑定DataTable实现联动下拉菜单的效果。

1、把下面的代码放在Page_Load里面

加载第一级下拉菜单

[CODE=csharp]
if (!IsPostBack)
{
addDate.Text = l_addDate.ToString();
BaseClass bc = new BaseClass();
DataTable dt = bc.GList(“select board_Id,board_Name from LinkBoard”);
//GList为BassClass里定义的得到DataTable的函数
boardid.DataSource = dt;
boardid.DataValueField = “board_Id”;
boardid.DataTextField = “board_Name”;
boardid.DataBind();
}
[/CODE]

2、第一个菜单改变触发的函数

[CODE=csharp]
protected void boardid_SelectedIndexChanged(object sender, EventArgs e)
{
Response.Write(boardid.SelectedItem);
BaseClass bc = new BaseClass();
DataTable dt = bc.GList(“select Cls_Id,Cls_Name from LinkCls where Cls_Board=” + boardid.SelectedValue);
clsid.DataSource = dt;
clsid.DataValueField = “Cls_Id”;
clsid.DataTextField = “Cls_Name”;
clsid.DataBind();

}
[/CODE]

下面的是页面的代码:

AutoPostBack="True"属性是设置当菜单一改变时重新加载页面好引起菜单二的改变

[CODE=csharp]
ID=”boardid” runat=”server” Width=”63px” AutoPostBack=”True” OnSelectedIndexChanged=”boardid_SelectedIndexChanged”>
 


[/CODE]

当然也可根据此原理实现多级联动

由于TinyMce编辑器的内容不能用js直接获取,否则获取的永远是初始化时候的值,必须使用它们内部提供的函数。

函数如下:

 <!–
        
//功能:获取TinyMce编辑器的内容
        
//参数:editorId——编辑器的id
        
//返回:内容字符串;如果失败,返回空字符串
        function GetTinyMceContent(editorId)
        {
            
return tinyMCE.getInstanceById(editorId).getBody().innerHTML;
        }
        
        
//功能:设置TinyMce编辑器的内容
        
//参数:editorId——编辑器的id
        
//        content——内容
        
//返回:(无)
        function SetTinyMceContent(editorId,content)
        {
            tinyMCE.getInstanceById(editorId).getBody().innerHTML
=content;
        }
    
//–>

这两天发现写的css在各大浏览器上都没有问题,可是在ie6上很不正常,这是因为我页面的编码是utf-8,但是css文件的编码是ANSI,这样的结果是css里面的中文(包括中文注释和中文字体)就会有问题,导致页面不正常。

解决方法很简单:

1、去掉css中的中文,或者用英文代替

2、将css文件的格式改为utf-8

 获取Select :

1、获取select 选中的 text:

$("#ddlRegType").find("option:selected").text();

2、获取select选中的 value: $("#ddlRegType ").val();

3、获取select选中的索引:

$("#ddlRegType ").get(0).selectedIndex;

设置select:

1、 设置select 选中的索引:

$("#ddlRegType ").get(0).selectedIndex=index;//index为索引值

2、设置select 选中的value:

$("#ddlRegType ").attr("value","Normal“);

$("#ddlRegType ").val("Normal");

$("#ddlRegType ").get(0).value = value;

3、设置select 选中的text:

var count=$("#ddlRegType ").size();

for(var i=0;i<count;i++)

{

if($("#ddlRegType ").get(0).options[i].text == text)

{

$("#ddlRegType ").get(0).options[i].selected = true;

break;

}

}

清空 Select:

$("#ddlRegType ").empty();

  采用的是sql分页中效率高的双top方法,采用存储过程,速度比较快,代码有简单的注释,我就不多解释了。

为了减少使用时的代码,我把全部搜索和有条件搜索的分开了。下面的是按升序排列的代码。

注意必须要用select top后面不能之间加变量,所以先连成字符串动态执行。

[CODE=mysql]
————-降序排列—无条件
CREATE procedure Pr_GetArticles —-这里为存储过程名称
@page int ,
@pagenum int
AS
DECLARE @tablename nvarchar(20)
set @tablename=’Article’ —–表名
DECLARE @idname nvarchar(20)
set @idname=’Article_Id’ —–表ID名
declare @strSQL nvarchar(4000)
DECLARE @TopNum int
SET @TopNum=(@page-1)*@pagenum
set @strSQL=N’select top’+ STR(@pagenum)+’ *
FROM ‘+@tablename+’
WHERE ‘+@idname+’<
(
select ISNULL(MIN(‘+@idname+’),99999999)
FROM
(
select TOP ‘+STR( @TopNum)+’ ‘+@idname+’ from ‘+@tablename+’ order by ‘+@idname+’ desc
) A
)
order by ‘+@idname+’ desc’
print (@strSQL)
exec(@strSQL)
GO

————-降序排列—有条件
CREATE procedure Pr_GetArticles —-这里为存储过程名称
@page int , —–传入的页码
@pagenum int —–每页的大小
AS
DECLARE @tablename nvarchar(20)
set @tablename=’Article’ —–表名
DECLARE @idname nvarchar(20)
set @idname=’Article_Id’ —–表ID名
DECLARE @condition nvarchar(3000)
set @condition=’Article_State=”已审核”‘ —–这里写条件
declare @strSQL nvarchar(4000)
DECLARE @TopNum int
SET @TopNum=(@page-1)*@pagenum
set @strSQL=N’select top’+ STR(@pagenum)+’ *
FROM ‘+@tablename+’
WHERE ‘+@idname+’<
(
select ISNULL(MIN(‘+@idname+’),99999999)
FROM
(
select TOP ‘+STR( @TopNum)+’ ‘+@idname+’ from ‘+@tablename+’ where ‘+@condition+’ order by ‘+@idname+’ desc
) A
) and ‘+ @condition +’
order by ‘+@idname+’ desc’
print (@strSQL)
exec(@strSQL)
GO
[/CODE]

 

 采用的是sql分页中效率高的双top方法,代码有简单的注释,我就不多解释了。

为了减少使用时的代码,我把全部搜索和有条件搜索的分开了。下面的是按升序排列的代码。

注意必须要用select top后面不能之间加变量,所以先连成字符串动态执行。

 

[CODE=mysql]
——-升序排列——无条件
CREATE procedure Pr_GetArticles —-这里为存储过程名称
@page int ,
@pagenum int
AS
DECLARE @tablename nvarchar(20)
set @tablename=’Article’ —–表名
DECLARE @idname nvarchar(20)
set @idname=’Article_Id’ —–表ID名
declare @strSQL nvarchar(4000)
DECLARE @TopNum int
SET @TopNum=(@page-1)*@pagenum
set @strSQL=N’select top’+ STR(@pagenum)+’ *
FROM ‘+@tablename+’
WHERE ‘+@idname+’>
(
select ISNULL(max(‘+@idname+’),0)
FROM
(
select TOP ‘+STR( @TopNum)+’ ‘+@idname+’ from ‘+@tablename+’ order by ‘+@idname+’
) A
)
order by ‘+@idname+”
print (@strSQL)
exec(@strSQL)
GO

——-升序排列——有条件
CREATE procedure Pr_GetArticles —-这里为存储过程名称
@page int ,
@pagenum int
AS
DECLARE @tablename nvarchar(20)
set @tablename=’Article’ —–表名
DECLARE @idname nvarchar(20)
set @idname=’Article_Id’ —–表ID名
DECLARE @condition nvarchar(3000)
set @condition=’Article_State=”已审核”‘ —–这里写条件
declare @strSQL nvarchar(4000)
DECLARE @TopNum int
SET @TopNum=(@page-1)*@pagenum
set @strSQL=N’select top’+ STR(@pagenum)+’ *
FROM ‘+@tablename+’
WHERE ‘+@idname+’>
(
select ISNULL(max(‘+@idname+’),0)
FROM
(
select TOP ‘+STR( @TopNum)+’ ‘+@idname+’ from ‘+@tablename+’ where ‘+@condition+’ order by ‘+@idname+’
) A
) and ‘+ @condition +’
order by ‘+@idname+”
print (@strSQL)
exec(@strSQL)
GO
[/CODE]

 今天在写jquery加.net的ajax中,插入数据库的中文乱码,将我的解决方法做个笔记。

在web.config中 设置:

<globalization requestEncoding="utf-8" responseEncoding="utf-8" fileEncoding="GB2312"/>

这样的话,页面是UTF-8解码,又支持中文,乱码问题解决了

网上也有另外一种方法,我还没有试过

在数据插入的SQL语句中加 N

string strSql = "insert into Article_body(articleTitle,articleContent,articleSummary,articleIsTop,articleAllowReply,articleIsHide)values(N’"+articleTitle +"’,N’"+articleContent+"’,N’"+articleSummary+"’,@articleIsTop,@articleAllowReply,@articleIsHide) ";