如图,GridView中列的数据是从数据库中读出来的,然后在CHECKBOX上面随意勾选,然后如何后在后台保存只改变过的项目的。我的想的是用JS给CHECKBOX一个Chang事件,每次改变后记录下那一列的流水号,然后根据流水号在后台更新相应列的数据、现在就是不知道怎么用JS获得流水号。不知道还有没其他简单可行的方法。希望大家指教,谢谢。

解决方案 »

  1.   

    隐藏一个列,放个Input或其他控件,定义好ID,然后用DOM可以取出来!
      

  2.   

    你的置顶、回复、热点他们只是name不同
    <input type=checkbox name='istop' value=<%#Eval("id")%> />
    这样的,所以你根本不要担心不知道哪个被选中后台可以直接取哪些被选中string[] istop_id = Request.Form["istop"].Split(','); 这就是所有置顶被选中的id,其他两个也是这样 只是name不同
      

  3.   

    你可以使用XmlHttp的无刷新方式,在点击复选框时,即通过脚本直接向后台请求改变数据,从而实现即点即设.(前提是你必须为所有复选框设置客户端事件)
    示例代码如下:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <TITLE> New Document </TITLE>
    <META NAME="Generator" CONTENT="EditPlus">
    <META NAME="Author" CONTENT="">
    <META NAME="Keywords" CONTENT="">
    <META NAME="Description" CONTENT="">
    </HEAD><BODY>
    <table>
    <tr>
    <td><input type=checkbox value="11" onclick="checkBoxClick(this);"></td>
    <td><input type=checkbox value="21" onclick="checkBoxClick(this);"></td>
    <td><input type=checkbox value="31" onclick="checkBoxClick(this);"></td>
    </tr>
    <tr>
    <td><input type=checkbox value="12" onclick="checkBoxClick(this);"></td>
    <td><input type=checkbox value="22" onclick="checkBoxClick(this);"></td>
    <td><input type=checkbox value="32" onclick="checkBoxClick(this);"></td>
    </tr>
    <tr>
    <td><input type=checkbox value="13" onclick="checkBoxClick(this);"></td>
    <td><input type=checkbox value="23" onclick="checkBoxClick(this);"></td>
    <td><input type=checkbox value="33" onclick="checkBoxClick(this);"></td>
    </tr>
    </table>
    </BODY>
    </HTML>
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    function checkBoxClick(obj)
    {
    //取得该复选框对应记录的ID
    var cValue = obj.value;
    //判断本复选框是否被选中
    var isCheck = 0;
    if(obj.checked == true)
    {
    isCheck = 1;
    } var url = "xxx.aspx?cValue=" + cValue + "&isCheck=" & isCheck;
    var a = XmlPost(url); if(a == "1")
    {
    alert("成功设置");
    }
    }function XmlPost(url)
    {
    //自己写
    }
    //-->
    </SCRIPT>
      

  4.   


     我的意思是我改变了哪一列,然后我就在数据库中更新那一列的数据
      现在的问题是单击某一列的CHECKBOX(三个随便哪一个),如何通过JS获得那一列的流水号,因为GridView模板列里面控件ID是变的如“GridView1_ctl02_CheckBox1”这样的东西。
      

  5.   

    <td> <input type=checkbox value="11" onclick="checkBoxClick(this);"> </td> 
    注意,你不需要知道控件的ID.请仔细看上面的代码
    你可以在控件绑定之后,在后台逐一寻找每行每列的复选框,然后添加脚本事件checkBoxClick(this)(或直接把流水号写入,checkBoxClick(this,23))
      

  6.   

    很简单吧,把数据读出来绑定后保存在全局变量中,修改后再保存的时候把GridView里的数据和全局变量中的数据比较一下就可以了,如果跟原来的值不一样,就保存
      

  7.   

    package event
    {
     import flash.events.Event;
     import vo.KeiyakusakiVO;
     import com.adobe.cairngorm.control.CairngormEvent;
     import control.KeihoController;
     
     public class KeiyakusakiCheckEvent extends CairngormEvent {
      
      public var isAdd : Boolean;
      public var keiyakusaki : Object;
      
      function KeiyakusakiCheckEvent(_data:Object, _isAdd:Boolean) : void {
       isAdd = _isAdd;
       keiyakusaki = _data;
       super(KeihoController.EVENT_KEIYAKUSAKI_CHECK);
      }
     }
    }