2008年7月12日星期六
今天终于盼到周六了,感觉上班的第一周过的好漫长啊。尤其是开始几天,不过后来几天觉得稍微快一点了。可能是有点适应这种生活的节奏了吧。人这种动物还真是神奇,好像什么样的环境都能很快的适应进去。即使开始的时候觉得不是一般人过的日子,可是过一段时间自己却会过的理所当然了。
中午好好的睡了一个小时的午觉,这个星期由于不太方便一直都没有睡过午觉。想想考试之前不论觉得考试好像多么没有把握都不肯放弃午觉,好像不睡的话大脑就会像浆糊已有一样混混沌沌的。可是现在连着一周都没有睡过照样好好的上班,原来人的潜力是无穷的,以前只是自己的心理作用罢了。
可是今天开始学校出入查的特别严了,害得我们以后上班出去的时候还得多绕好大的一段路,而且下周还该我们值日了。希望自己千万不要迟到才行啊。
今天下午去了趟惠友,没想到路上遇到了好几个同学,虽然有的离着太远没来得及打招呼,可是觉得挺高兴的。现在整天不回学校,而且住到附近的同学挺少的,很少能碰到个认识的人,现在觉得见到几个同学真的特别的高兴,又觉得亲切。
总之,今天过的还算不错,我们总是发挥自己的长处,口号就是——用最少的钱买到最多最实惠最全面的东西,呵呵。
知识点滴:
1.关于gridView中客户档案信息的更新,本来想使用其模板,可是今天上午师兄说不应该让其绑定所有内容,这样如果客户姓名或者电话等内容都填写进去的话有可能使表显得特别长。最好只显示几个主要字段,然后添加一列“删除”和“详细信息”。“删除”功能直接编写即可。使用“详细信息”调用另外一个网页显示该客户的详细信息,并且可以修改并且保存。不过现在还没有改正完,只好下周再继续了。
不过,“编辑”,“更新”,“取消”和“删除”已经写的差不多了。保留下来以后用的时候再看看吧。
#region//使用模板的编辑,取消,更新
//单击“编辑”触发的事件
protected void GridView2_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView2.EditIndex = e.NewEditIndex;
Client client = new Client();
client.initClient(GridView2);
}
//单击“取消”触发的事件
protected void GridView2_CancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
GridView2.EditIndex = -1;
Client client = new Client();
client.initClient(GridView2);
}
//单击“更新”触发的事件
protected void GridView2_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
int lxbh=0;
int khbh = Convert.ToInt32(GridView2.DataKeys[e.RowIndex].Value.ToString());
string khmc = ((TextBox)(GridView2.Rows[e.RowIndex].Cells[3].Controls[0])).Text.ToString().Trim();
string khlx = ((TextBox)(GridView2.Rows[e.RowIndex].Cells[4].Controls[0])).Text.ToString().Trim();
string phone = ((TextBox)(GridView2.Rows[e.RowIndex].Cells[5].Controls[0])).Text.ToString().Trim();
string mobile = ((TextBox)(GridView2.Rows[e.RowIndex].Cells[6].Controls[0])).Text.ToString().Trim();
string fax = ((TextBox)(GridView2.Rows[e.RowIndex].Cells[7].Controls[0])).Text.ToString().Trim();
string email = ((TextBox)(GridView2.Rows[e.RowIndex].Cells[8].Controls[0])).Text.ToString().Trim();
string linkman = ((TextBox)(GridView2.Rows[e.RowIndex].Cells[9].Controls[0])).Text.ToString().Trim();
string address = ((TextBox)(GridView2.Rows[e.RowIndex].Cells[10].Controls[0])).Text.ToString().Trim();
string postcode = ((TextBox)(GridView2.Rows[e.RowIndex].Cells[11].Controls[0])).Text.ToString().Trim();
string remark = ((TextBox)(GridView2.Rows[e.RowIndex].Cells[12].Controls[0])).Text.ToString().Trim();
Conn conn = new Conn();
errcode = conn.Open(out errMsg);
if (errcode == 200)
{
string sql = "select c_lxbh from tb_ClientType where c_lxmc='" + khlx + "'";
SqlCommand cmd =new SqlCommand (sql,conn.con );
lxbh = Convert .ToInt32 ( cmd.ExecuteScalar());
if (lxbh == 0)
{
string ins = "insert into tb_ClientType(c_lxmc) values'" + khlx + "'";
SqlCommand cmd1 = new SqlCommand(ins, conn.con);
cmd1.ExecuteNonQuery();
string bh = "select max(c_lxbh) from tb_ClientType ";
SqlCommand cmd2 = new SqlCommand(bh, conn.con);
cmd2.ExecuteNonQuery();
}
Client client = new Client();
client.UpdateClient(khbh, khmc, lxbh , linkman, phone, mobile, fax, email, address, postcode, remark);
client.initClient(GridView2);
}
conn.Close();
}
#endregion
使用的时候要在gridview的源代码段添加onRowEditing,OnRowCanceling和onRowUpdating等事件中调用。
另外,我的程序开始的时候总是有个问题,怎么都更新不了。设置断点调试的时候发现是得到的文本框的内容并不是刚刚输入的新值,而是修改之前的值。我想了好半天都没有弄清楚,后来才知道原来只要是page_load事件里的问题,是我对这个过程的调用时机理解的不够好。我原来以为只有刚刚调入这个页面的时候才会触发这个事件,原来只要是和服务器通信的时候都会调用一次。而我开始的时候直接在这个事件里面写了绑定数据源的函数,这样每次单击“更新”按钮的时候也会触发这个事件绑定一次数据源,这样一来,得到的当然是之前的数据了,也就没有办法用Update方法实现更新。此时,只需要在page_load事件里添加ispostback即可,这样就只有在第一次加载页面的时候绑定一次数据源。
1. 关于换页的问题,当GridView中显示的记录条数较多时,一般都要使用分页显示。说实话,开始的时候我还以为不用编写代码呢,还真是够白痴的。现在才知道还需要编写一个过程:
#region //换页时触发的事件
protected void GridView2_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView2 .PageIndex =e.NewPageIndex ;
Client client = new Client();
client.initClient(GridView2 );
}
#endregion
2. 当单击删除按钮时触发的事件,要先执行删除的sql语句,再进行数据绑定。
#region//删除客户档案记录
protected void GridView2_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
Conn conn = new Conn();
errcode = conn.Open(out errMsg);
if (errcode == 200)
{
int sqlKey = Convert.ToInt32(GridView2. DataKeys[e.RowIndex].Value.ToString());
string sql = "delete from tb_Client where c_khbh = '" + sqlKey + "'";
SqlCommand cmd = new SqlCommand(sql, conn.con);
cmd.ExecuteNonQuery();
conn.Close();
Client client = new Client();
client.initClient(GridView2);
}
}
#endregion