您的位置:首页 > 编程语言 > ASP

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

2009-08-06 23:48 260 查看
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......
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: