CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

相对于高手也不算是一个很难的问题!

楼主Qlike(℡鱼儿)2003-11-02 23:26:49 在 .NET技术 / ASP.NET 提问

有这样的一个问题,在一个DataGrid中有如下的A、B、C、D几个模板列,全部绑定的是CheckBox,  
  ID             A                 B                 C                 D                    
  1               口             口               口               口                 保存  
  2               口             口               口               口                 保存  
  怎么将每行中选中了(设“1”)的CheckBox保存到数据库中? 问题点数:50、回复次数:9Top

1 楼saucer(思归)回复于 2003-11-02 23:30:26 得分 20

assume   you   are   talking   about   CheckBox   server   controls,    
   
  foreach   (DataGridItem   dgi   in   DataGrid1.Items)  
  {  
      CheckBox   a   =   (CheckBox)dgi.FindControl("ACheckID");  
      CheckBox   b   =   (CheckBox)dgi.FindControl("BCheckID");  
      CheckBox   c   =   (CheckBox)dgi.FindControl("CCheckID");  
      CheckBox   d   =   (CheckBox)dgi.FindControl("DCheckID");  
   
      if   (a.Checked)  
      {  
        //do   something  
      }  
   
  }Top

2 楼LesleyChiu(鱼头)回复于 2003-11-02 23:31:08 得分 5

for   循环  
  {  
          if   (判断checkbox.clicked)  
                  写数据库  
  }  
   
  这样的话不用到autopostback,不会选一个就刷新一次。Top

3 楼chenlm(李逍遥)回复于 2003-11-02 23:31:43 得分 5

我只用了一个模板列,里面有一个RadioButtonList  
   
  在Button1_Click中  
   
  循环一遍  
   
  for(int   j=0;j<DG2.Items.Count;j++)   //19个(5,10,4)  
  {  
  TypeID.Add(dc1.Trans2Num(lbl0.Text));  
  RBL   =   (RadioButtonList)DG2.Items[j].Cells[0].Controls[3];  
  Label   Lbl;  
  Lbl   =   (Label)DG2.Items[j].Cells[0].Controls[1];  
  ItemIndex.Add(Lbl.Text);  
  double   bignum=0;  
  double   num=0;  
  for(int   k=0;k<RBL.Items.Count;k++)   //13*2   +   6*3   =   44  
  {  
  if(RBL.Items[k].Selected==true)  
  {  
  if(strSqlIn   ==   "")  
  {strSqlIn   =   RBL.Items[k].Value;}  
  else  
  {strSqlIn   +=   ","   +   RBL.Items[k].Value;}  
  FeedbackInfo.Add(dc1.Trans2ABC(k));  
  //mark   +=   Convert.ToInt32(RBL.Items[k].Value);  
  //Label1.Text   =   strSql+   "<br>";//   FeedbackInfo   +   k;  
  break;//至关重要,否则有选择的话也会执行unCheckedMark   +=   biggestnum;  
  }  
  num   =   Convert.ToDouble(dc1.Scalar("select   itemvalue   as   'mark'   from   surveyitemquestion   where   id="+RBL.Items[k].Value));  
  if(bignum<num)  
  {bignum=num;}  
  if(k==RBL.Items.Count-1)//没有选择的时候会执行  
  {  
  FeedbackInfo.Add("");  
  unCheckedMark   +=   bignum;  
  }  
  }  
  }Top

4 楼Qlike(℡鱼儿)回复于 2003-11-03 18:48:42 得分 0

按照上面的方法,我的更新的代码这样写的,但是就是写入数据不了,什么错也没有,大家看看我什么地方弄错了!  
  public   void   DataGrid_UpdateCommand(object   sender,   DataGridCommandEventArgs   e)  
  {  
              SqlConnection   MyCn   =   new   SqlConnection(strConn);  
              foreach   (DataGridItem   dgi   in   DataGrid1.Items)  
              {  
  CheckBox   a   =   (CheckBox)dgi.FindControl("CheckBox1");  
  CheckBox   b   =   (CheckBox)dgi.FindControl("CheckBox2");  
  CheckBox   c   =   (CheckBox)dgi.FindControl("CheckBox3");  
  CheckBox   d   =   (CheckBox)dgi.FindControl("CheckBox4");  
   
  string   strSQL   =   "update   quanxian   set   createnew   =   @createnew,deletelist   =   @deletelist,modify   =   @modify,readlist   =   @readlist   where   id=   "   +   DataGrid1.DataKeys[(int)e.Item.ItemIndex]   ;  
   
            SqlCommand   MyCmd   =   new   SqlCommand(strSQL,MyCn);  
            MyCmd.Parameters.Add(new   SqlParameter("@createnew",   SqlDbType.NVarChar,   11));  
            MyCmd.Parameters.Add(new   SqlParameter("@deletelist",   SqlDbType.NVarChar,   40));  
            MyCmd.Parameters.Add(new   SqlParameter("@modify",   SqlDbType.NVarChar,   20));  
            MyCmd.Parameters.Add(new   SqlParameter("@readlist",   SqlDbType.NChar,   12));  
   
          //MyCmd.Parameters["@id"].Value   =   DataGrid1.DataKeys[(int)e.Item.ItemIndex];  
          MyCmd.Parameters["@createnew"].Value   =   a.Checked.ToString();  
          MyCmd.Parameters["@deletelist"].Value   =   b.Checked.ToString();  
          MyCmd.Parameters["@modify"].Value   =   c.Checked.ToString();  
          MyCmd.Parameters["@readlist"].Value   =   d.Checked.ToString();  
   
          if   (((a.Checked   ==   true)   &&   (a.Enabled   ==   true))||((b.Checked   ==true)   &&   (b.Enabled   ==   true))||((c.Checked   ==true)   &&   (c.Enabled   ==true))||((d.Checked   ==true)   &&   (d.Enabled   ==true)))  
        {  
  MyCmd.Parameters["@createnew"].Value   =   "1";  
  MyCmd.Parameters["@deletelist"].Value   =   "1";  
  MyCmd.Parameters["@modify"].Value   =   "1";  
  MyCmd.Parameters["@readlist"].Value   =   "1";  
          }  
          else  
          {  
  MyCmd.Parameters["@createnew"].Value   =   "0";  
  MyCmd.Parameters["@deletelist"].Value   =   "0";  
  MyCmd.Parameters["@modify"].Value   =   "0";  
  MyCmd.Parameters["@readlist"].Value   =   "0";  
            }  
   
  MyCmd.Connection.Open();  
  MyCmd.ExecuteNonQuery();  
  MyCn.Close();  
          }  
          DataGrid1.EditItemIndex   =   -1;  
          BindGrid();  
  }Top

5 楼saucer(思归)回复于 2003-11-03 18:55:39 得分 0

if   you   do  
   
  int   n   =   MyCmd.ExecuteNonQuery();  
  Response.Write(String.Format("****{0}****}",n));  
   
  what   do   you   see??  
   
  try   to   write   out   the   sql   statement   and   run   it   in   SQL   Query   Analzyer   to   see   if   it   works  
   
  Top

6 楼Qlike(℡鱼儿)回复于 2003-11-03 19:33:48 得分 0

在我选择后更新报错说你输入的字符正确!Top

7 楼wd_318(饭加加)回复于 2003-11-03 20:15:33 得分 20

public   void   DataGrid_UpdateCommand(object   sender,   DataGridCommandEventArgs   e)  
  {  
              SqlConnection   MyCn   =   new   SqlConnection(strConn);  
              foreach   (DataGridItem   dgi   in   DataGrid1.Items)  
              {  
  CheckBox   a   =   (CheckBox)dgi.FindControl("CheckBox1");  
  CheckBox   b   =   (CheckBox)dgi.FindControl("CheckBox2");  
  CheckBox   c   =   (CheckBox)dgi.FindControl("CheckBox3");  
  CheckBox   d   =   (CheckBox)dgi.FindControl("CheckBox4");  
   
  string   strSQL   =   "update   quanxian   set   createnew   =   @createnew,deletelist   =   @deletelist,modify   =   @modify,readlist   =   @readlist   where   id=   "   +   DataGrid1.DataKeys[(int)e.Item.ItemIndex]   ;  
   
            SqlCommand   MyCmd   =   new   SqlCommand(strSQL,MyCn);  
            MyCmd.Parameters.Add(new   SqlParameter("@createnew",   SqlDbType.NVarChar,   11));  
            MyCmd.Parameters.Add(new   SqlParameter("@deletelist",   SqlDbType.NVarChar,   40));  
            MyCmd.Parameters.Add(new   SqlParameter("@modify",   SqlDbType.NVarChar,   20));  
            MyCmd.Parameters.Add(new   SqlParameter("@readlist",   SqlDbType.NChar,   12));  
   
   
          if   ((a.Checked   ==   true)   &&   (a.Enabled   ==   true))  
  MyCmd.Parameters["@createnew"].Value   =   "1";  
  else  
  MyCmd.Parameters["@createnew"].Value   =   "0";  
   
  if((b.Checked   ==true)   &&   (b.Enabled   ==   true))  
  MyCmd.Parameters["@deletelist"].Value   =   "1";  
  else  
  MyCmd.Parameters["@deletelist"].Value   =   "0";  
   
  if((c.Checked   ==true)   &&   (c.Enabled   ==true))  
  MyCmd.Parameters["@modify"].Value   =   "1";  
  else  
  MyCmd.Parameters["@modify"].Value   =   "0";  
   
  if((d.Checked   ==true)   &&   (d.Enabled   ==true))  
  MyCmd.Parameters["@readlist"].Value   =   "1";  
  else  
  MyCmd.Parameters["@readlist"].Value   =   "0";  
   
   
  MyCmd.Connection.Open();  
  MyCmd.ExecuteNonQuery();  
  MyCn.Close();  
          }  
          DataGrid1.EditItemIndex   =   -1;  
          BindGrid();  
  }  
  Top

8 楼wd_318(饭加加)回复于 2003-11-03 20:28:29 得分 0

public   void   DataGrid_UpdateCommand(object   sender,   DataGridCommandEventArgs   e)  
  {  
              SqlConnection   MyCn   =   new   SqlConnection(strConn);  
   
  CheckBox   a   =   (CheckBox)e.Item.FindControl("CheckBox1");  
  CheckBox   b   =   (CheckBox)e.Item.FindControl("CheckBox2");  
  CheckBox   c   =   (CheckBox)e.Item.FindControl("CheckBox3");  
  CheckBox   d   =   (CheckBox)e.Item.FindControl("CheckBox4");  
   
  string   strSQL   =   "update   quanxian   set   createnew   =   @createnew,deletelist   =   @deletelist,modify   =   @modify,readlist   =   @readlist   where   id=   "   +   DataGrid1.DataKeys[(int)e.Item.ItemIndex].ToString();  
   
            SqlCommand   MyCmd   =   new   SqlCommand(strSQL,MyCn);  
            MyCmd.Parameters.Add(new   SqlParameter("@createnew",   SqlDbType.NVarChar,   11));  
            MyCmd.Parameters.Add(new   SqlParameter("@deletelist",   SqlDbType.NVarChar,   40));  
            MyCmd.Parameters.Add(new   SqlParameter("@modify",   SqlDbType.NVarChar,   20));  
            MyCmd.Parameters.Add(new   SqlParameter("@readlist",   SqlDbType.NChar,   12));           //这里四行的类型的长度注意改一下!  
   
   
          if   ((a.Checked   ==   true)   &&   (a.Enabled   ==   true))  
  MyCmd.Parameters["@createnew"].Value   =   "1";  
  else  
  MyCmd.Parameters["@createnew"].Value   =   "0";  
   
  if((b.Checked   ==true)   &&   (b.Enabled   ==   true))  
  MyCmd.Parameters["@deletelist"].Value   =   "1";  
  else  
  MyCmd.Parameters["@deletelist"].Value   =   "0";  
   
  if((c.Checked   ==true)   &&   (c.Enabled   ==true))  
  MyCmd.Parameters["@modify"].Value   =   "1";  
  else  
  MyCmd.Parameters["@modify"].Value   =   "0";  
   
  if((d.Checked   ==true)   &&   (d.Enabled   ==true))  
  MyCmd.Parameters["@readlist"].Value   =   "1";  
  else  
  MyCmd.Parameters["@readlist"].Value   =   "0";  
   
   
  MyCmd.Connection.Open();  
  MyCmd.ExecuteNonQuery();  
  MyCn.Close();  
     
          DataGrid1.EditItemIndex   =   -1;  
          BindGrid();  
  }  
   
   
  以上是单行更新的代码Top

9 楼Qlike(℡鱼儿)回复于 2003-11-04 00:15:00 得分 0

问题还是得不到解决,大家再帮忙看看问题出在哪里了!Top

相关问题

  • 菜鸟的问题。对于熟悉多线程的不算是难题。
  • 我是xbelm(红色男儿),我的问题不算是很难,但是对于我来说就实在太难了,还请大家多多帮忙,谢谢!
  • 怎样算是有基础? 关于VC学习
  • 我终于算是美女啦!大家支持一下喔!
  • 关于分类的一个问题!(这个大概算是分类查询)
  • 请教一个问题,关于CSDN左边的“TREE”,算是新手问题吧
  • 关于global.asa ,相对贫下中农来说,绝对难题
  • 我就不信,这个也算是难题么?我等一夜都没人回答??
  • 自定义控件问题,附代码。不算是太难的问题。调用事件出错
  • 我完了,木秀于林,风必催之,我算是明白了这一点,至于这个照片...

关键词

  • checkbox
  • 口
  • dgi
  • findcontrol
  • 保存

得分解答快速导航

  • 帖主:Qlike
  • saucer
  • LesleyChiu
  • chenlm
  • wd_318

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo