int pagesize = 3;
            int pageindex = 0;
            if (pageindex < 1)
            {
                pageindex = 1;
            }
            pageindex = Convert.ToInt32(Request.QueryString["pageindex"]) ;
            DataClassesDataContext db = new DataClassesDataContext();
            var sql = from test in db.test
                      orderby test.id ascending
                      select test;
            this.GridView1.DataSource = sql.Skip((pageindex - 1) * pagesize).Take(pagesize);
            this.GridView1.DataBind();
posted @ 2009-09-01 00:58 悟〈--觉 阅读(196) 评论(0) 编辑
库里表的结构如下:
id ParentId父类ID name名称
Code

posted @ 2009-08-03 17:02 悟〈--觉 阅读(412) 评论(0) 编辑
posted @ 2009-07-23 17:34 悟〈--觉 阅读(119) 评论(0) 编辑
posted @ 2009-07-23 13:32 悟〈--觉 阅读(101) 评论(0) 编辑

前台页如下:
其实主要的思路是,首先把要修改的那个字段绑定为不可见的,然后在后台的
private void DataGrid1_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
  {
                if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem||e.Item.ItemType==ListItemType.EditItem)
                { 
                       Control myControl =e.Item.Cells[7].FindControl("CheckBox2");
                    ((LinkButton)e.Item.Cells[4].Controls[0]).Attributes.Add("onclick","return confirm('确定要删除?');");
     ((LinkButton)e.Item.Cells[6].Controls[0]).Attributes.Add("onclick","return confirm('确定要删除?');");
     (myControl as CheckBox).Attributes.Add("onclick","if(!confirm('确定要修改不?') ) return false;"); 
     if(e.Item.Cells[8].Text=="0")
     {
      
      if(myControl!=null)
      {
       (myControl as CheckBox).Checked=true;
          }
     }
      }    
  }
以上是绑定的时候与库里的字段一致,如果手选CHECKBOX来修改的时候
  <ItemTemplate>
                <asp:CheckBox id="CheckBox2" runat="server" Text="是" AutoPostBack="True" OnCheckedChanged="TranChecked"></asp:CheckBox>
               </ItemTemplate>
然后在后台重写一下TranChecked这个事件即可

具体代码如下:

protected void TranChecked(object sender, System.EventArgs e)
  {
   // sender为事件源,我们可以通过下面的方式获得DataGrid当前行
   CheckBox cb = (CheckBox)sender;
   DataGridItem item = cb.Parent.Parent as DataGridItem;
   int id=int.Parse(item.Cells[5].Text);
   if(cb.Checked)
   {
    string sql="update Users set isdelete=0 where id="+id;
    Local.VoidSQL(sql);
   }
   else
   {
    string sql="update Users set isdelete=1 where id="+id;
    Local.VoidSQL(sql);
   }
   // 第一个Parent得到的是item的cell;第二个Parent得到Item

   // 下面就可以操作item的其他cells了
  }


<%#DataBinder.Eval(Container.DataItem,"RealName") %><%# GetDepartment(DataBinder.Eval(Container.DataItem,"Department").ToString())%><%# GetJob(DataBinder.Eval(Container.DataItem,"Purview").ToString())%>

posted @ 2009-07-23 09:35 悟〈--觉 阅读(122) 评论(0) 编辑

/*******************************************************************************/
      不同的浏览器,比如Internet Explorer 6,Internet Explorer 7,Mozilla Firefox等,对CSS的解析认识不一样,因此会导致生成的页面效果不一样,得不到我们所需要的页面效果。这个时候我们就需要针对不同的浏览器去写不同的CSS,让它能够同时兼容不同的浏览器,能在不同的浏览器中也能得到我们想要的页面效果。这个针对不同的浏览器写不同的CSS code的过程,就叫CSS hack,也叫写CSS hack。
      由于不同的浏览器对CSS的支持及解析结果不一样,还由于CSS中的优先级的关系。我们就可以根据这个来针对不同的浏览器来写不同的CSS。
      比如 IE6能识别下划线"_"和星号" * ",IE7能识别星号" * ",但不能识别下划线"_",而firefox两个都不能认识。等等
书写顺序,一般是将识别能力强的浏览器的CSS写在后面。下面列举常用的CSS hack方法

1:!important
!important作用是提高指定样式规则的应用优先权。
IE7以及所有标准浏览器能识别!important
区别IE6与IE7与其他浏览器
.browserTest
{
    border:20px solid #60A179 !important;
    border:20px solid #00F;
}
在Mozilla中或者IE7浏览时候,能够理解!important的优先级,因此显示#60A179的颜色:
在IE6中浏览时候,不能够理解!important的优先级,因此显示#00F的颜色:

2:*
IE都能识别*;标准浏览器(如火狐)不能识别*
区别IE6与火狐
.browserTest
{
    border:20px solid #60A179;
    *border:20px solid #00F;
}
区别IE7与火狐
.browserTest
{
   border:20px solid #60A179;
   *border:20px solid #00F;
}
区别IE7,IE6与火狐
.browserTest
{
   border:20px solid #60A179;
   *border:20px solid #00F !important;
   *border:20px solid ###;
}

3:_
IE6支持下划线,IE7和firefox均不支持下划线
区别IE7,IE6与火狐
.browserTest
{
   border:20px solid #60A179;
   *border:20px solid #00F;
   _border:20px solid ###;
}
/*不管是什么方法,书写的顺序都是firefox的写在前面,IE7的写在中间,IE6的写在最后面*/

4:*+html 与 *html
*+html 与 *html 是IE特有的标签, firefox 暂不支持.而*+html 又为 IE7特有标签
.browserTest { width: 120px; }      /* FireFox fixed */
*html .browserTest { width: 80px;}  /* ie6 fixed */
*+html .browserTest { width: 60px;} /* ie7 fixed */
注意:
*+html 对IE7的HACK 必须保证HTML顶部有如下声明:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
/*****************************************************************************/

/*****************************************************************************/
以下是一些常用的CSS兼容技巧
1)火狐下给div设置padding后会导致width和height 增加, 但IE不会.(可用!important解决)

2)垂直居中,将 line-height设置为当前div相同的高度, 再通过vertical-align: middle;( 注意内容不要换行)

3)水平居中,margin:0 auto;(当然不是万能)

4)若需给a标签内内容加上样式, 需要设置 display: block;(常见于导航标签)

5)浮动IE产生的双倍距离
在IE下,当一个div设置了float后,然后给他设置margin,就会出现加倍的margin,解决的办法是给div设置display:inline。
<div id=”float”></div>
相应的css为
#float
{
   float:left;
   margin:5px;/*IE下理解为10px*/
   display:inline;/*IE下再理解为5px*/
}
Block元素的特点是:总是在新行上开始,高度,宽度,行高,边距都可以控制(块元素);Inline元素的特点是:和其他元素在同一行上,...不可控制(内嵌元素);

6)IE和FF对盒模型的解释区别
#browserTest{ width: 650px !important;width: 648px;padding-left:2px;background:#fff; } 
browserTest显示的宽度是650px;
IE Box的总宽度是:width+padding+border+margin宽度总和;
FF Box的总宽度就是:width的宽度,padding+border+margin的宽度在含在width内。
如果有BOX{WIDTH:"300"; PADDING:"5PX";}
则BOX在IE的宽度应该为:310
而在FF的宽度则是300
所以在BOX有填充的情况下应该这样使用
BOX{WIDTH:"300" !IMPORTANT; WIDTH:"290";}

7)ul标签在FF下面默认有list-style和padding, 最好事先声明, 以避免不必要的麻烦;(常见于导航标签和内容列表)

8)作为外部wrapper的div不要定死高度, 最好还加上 overflow: hidden;以达到高度自适应;

9)页面的最小宽度
min-width是个非常方便的CSS命令,它可以指定元素最小也不能小于某个宽度,这样就能保证排版一直正确。但IE不认得这个,
而它实际上把width当做最小宽度来使。为了让这一命令在IE上也能用,可以把一个<div> 放到 <body> 标签下,然后为div指定一个类:
然后CSS这样设计:
#container{ min-width: 600px; width:expression(document.body.clientWidth < 600? "600px": "auto" );}
第一个min-width是正常的;但第2行的width使用了Javascript,这只有IE才认得,这也会让你的HTML文档不太正规。它实际上通过Javascript的判断来实现最小宽度。

10:万能float闭合
将以下代码加入Global CSS 中,给需要闭合的div加上
<style>
/* Clear Fix */
.clearfix:after
{
   content:".";
   display:block;
   height:0;
   clear:both;
   visibility:hidden;
}
*html .clearfix{
   height:1%;
}
*+html .clearfix{
   height:1%;
}
.clearfix
{
   display:inline-block;
}
/* Hide from IE Mac */
.clearfix {display:block;}
/* End hide from IE Mac */
/* end of clearfix */
</style>
/**********************************************/
<div id="wrap">
   <div class="column_left">
     <h1>Float left</h1>
   </div>
   <div class="column_right">
     <h1>Float right</h1>
   </div>
</div>
#wrap{ border:6px #ccc solid; overflow:auto; _height:1%;}
.column_left{ float:left; width:20%; padding:10px;}
.column_right{ float:right; width:75%; padding:10px; border-left:6px #eee solid;} 

posted @ 2009-07-23 09:25 悟〈--觉 阅读(107) 评论(0) 编辑

//处理JSON数据格式
  public string json(string json)
  {
   string []index1=Getindex(json,"\'").Split(',');
   string []index2=Getindex(json,"\\“).split(',');
   for(int i=0;i<index1.Length-1;i++)
   {
    json.Insert(int.Parse(index1[i]), "\\");
   }
   for(int j=0;j<index2.Length-1;j++)
   {
    json.Insert(int.Parse(index2[j]), "\\");
   } 
   return json.Replace("\r", "\\r").Replace("\n", "\\r");
  }

  public string Getindex(string a,string b)
  {
   string cccc="";
   int i=0;
   int index=a.IndexOf(b);
   while(index>=0)
   {
    cccc+=index+",";
    i++;
    index=a.IndexOf(b,index+1,a.Length-1-index);
   }
   return cccc;
  }

posted @ 2009-07-17 14:38 悟〈--觉 阅读(247) 评论(0) 编辑

//给时间添加天
  function AddDay(strInterval, Number, dtTmp) {
        switch (strInterval) {
            case 's': return new Date(Date.parse(dtTmp) + (1000 * Number));
            case 'n': return new Date(Date.parse(dtTmp) + (60000 * Number));
            case 'h': return new Date(Date.parse(dtTmp) + (3600000 * Number));
            case 'd': return new Date(Date.parse(dtTmp) + (86400000 * Number));
            case 'w': return new Date(Date.parse(dtTmp) + ((86400000 * 7) * Number));
            case 'q': return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) + Number * 3, dtTmp.getDate());
            case 'm': return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) + Number, dtTmp.getDate());
            case 'y': return new Date((dtTmp.getFullYear() + Number), dtTmp.getMonth(), dtTmp.getDate());
        }
    }
使用如下:
AddDay('d',2,new date())这个是将时间向后移两天

posted @ 2009-07-15 17:47 悟〈--觉 阅读(55) 评论(0) 编辑
this.DataGrid1.AllowPaging=false;
 Bind(DataGrid1,"select * from [work]");
  Response.Clear();   
  Response.Charset="utf-8";    //输出
  string Title = this.Title.Text;
  Response.AppendHeader("Content-Disposition","attachment;filename="+System.Web.HttpUtility.UrlEncode(Title)+".xls");    
  Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");   //设置输出编码
  System.IO.StringWriter   osw=new System.IO.StringWriter();//new   System.IO.StringWriter(myinfo);   
  System.Web.UI.HtmlTextWriter   ohtw=new   System.Web.UI.HtmlTextWriter(osw);   
  DataGrid1.RenderControl(ohtw);  
  Response.Write(osw);   
  Response.End();
posted @ 2009-07-15 17:10 悟〈--觉 阅读(69) 评论(0) 编辑
摘要: protected void Calendar1_SelectionChanged(object sender, EventArgs e) { this.TextBox1.Text = this.Calendar1.SelectedDate.ToString("yyyy-MM-dd"); }阅读全文
posted @ 2009-06-24 18:42 悟〈--觉 阅读(42) 评论(0) 编辑