asp.net学习旅程5(GridView特别篇,上)

1,数据绑定查询
这个些代码比较通用.主要是为了理清思路.可以有不同的实现.
SqlConnection sqlcon;
SqlCommand sqlcom;
string  strConn  =   " Data Source=(local);Database=TestDB;Uid=sa;Pwd=123456 " // 连接字符串

string  strsql  =   " select * from tablename where " ;
sqlcon 
=   new  SqlConnection(strConn); 

// 打开数据连接
SqlDataAdapter myda  =   new  SqlDataAdapter(strsql, sqlcon);
DataSet myds 
=   new  DataSet();
sqlcon.Open();

// 将结果绑定到指定DataSet中                         
myda.Fill(myds,  " cuabase " );           
gridview1.DataSourceID 
=   null ;       
gridview1.DataSource 
=  myds;
gridview1.DataKeyNames 
=   new   string [] {  " 字段名 "  };

// 显示并关闭连接
gridview1.DataBind();
sqlcon.Close();

2.自定义超级连接
GridView自带的编辑功能感觉很弱.一般都是点击编辑后跳转到相应的页面进行修改.
首先编辑字段添加列...
  

然后在属性->DataNavigateUrlFeild添加要Get传递数据的字段标志
在DataNavgateUrlFromat 添加要掉转页面的格式
例如:page.aspx?cusid={0} 0为占位符


在行为->NavigateUrl添加要跳转页面
 

要想在相应的界面接收数据则代码如下.

string  strName  =  HttpContext.Current.Request.QueryString[ " cusid " ];
// long id = long.Parse(this.Request.QueryString["cusid"].ToString());
string  strRes  =   " This is the response from the server:\r\n "   +   " Hello,  "   +  strName  +   " ! " ;

HttpContext.Current.Response.Clear();
// 清除缓冲区流中的所有内容输出。

HttpContext.Current.Response.Write(strRes); 
// 将信息写入 HTTP 响应输出流。

HttpContext.Current.Response.Flush();
// 向客户端发送当前所有缓冲的输出。

HttpContext.Current.Response.End();
// 将当前所有缓冲的输出发送到客户端,停止该页的执行,并引发EndRequest 事件(停止请求)。

3,在GridView中CheckBox的处理
(1)记录的Check的选择判断,得到选择记录的索引
protected   void  Button2_Click( object  sender, EventArgs e)
{   
     TextBox2.Text 
=   "" ;
        
     
for  ( int  i  =   0 ; i  <  gridview1.Rows.Count;i ++  )
     {
            
// i为GridView1 的第i行,j为GridView1的第j列
            
// CheckBox chk = (CheckBox)gridview1.Rows[i].Cells[j].FindControl("CheckBox2");
            
            CheckBox chk 
=  (CheckBox)gridview1.Rows[i].Cells[ 0 ].FindControl( " CheckBox2 " );
            
if  (chk.Checked == true )
            {
                TextBox2.Text 
=  TextBox2.Text  +  (i + 1 ).ToString();
            }
     }
               
}

(2)Check的全部选择
添加Check改变事件,如果为选中状态则将所有记录的CheckBox全部选中,配合ajax效果最好
     protected   void  CheckBox1_CheckedChanged( object  sender, EventArgs e)
    {
        
int  i;
        
if  (((CheckBox)sender).Checked)
        {
            
for  (i  =   0 ; i  <  gridview1.Rows.Count; i ++ )
            {
                ((CheckBox)gridview1.Rows[i].FindControl(
" CheckBox2 " )).Checked  =   true ; // 找到那一列模板的ID值
            }
        }
        
else
        {
            
for  (i  =   0 ; i  <  gridview1.Rows.Count; i ++ )
            {
                ((CheckBox)gridview1.Rows[i].FindControl(
" CheckBox2 " )).Checked  =   false ;
            }
        }
    }

今天就到这里...这只是上篇...不过随着慢慢的了解可能还有中篇..下篇1,下篇2,下篇N......

你可能感兴趣的:(GridView)