在dataGrid里的每个单元,用innerHtml在客户端 动态创建textbox 然后输入值,
这样可以达到对dataGrid里的每个单元,单独设置。 但是服务器是获得不了你修改的值的。
我便采用xmlhttp传到后台,可是怎么也获得不了值啊,更别说创建xml了。5。。帮帮我。
function send()
{
       var oHttpReq = new ActiveXObject("MSXML2.XMLHTTP");
       var oDoc = new ActiveXObject("MSXML2.DOMDocument");
       var id="FFF";
       oHttpReq.open("GET", "send.aspx?id="+id, false);
       oHttpReq.send();//自己发送给自己
}
//在send.aspx中form_load
if(this.Request["id"]!=null)
{
string id = this.Request["id"].ToString();
Session["id"] =id+"FFFF";
}
if (Session["id"]!=null)
TextBox1.Text=Session["id"].ToString();可是怎么TextBox1.Text的值总是显示不出来, 可我明明调试中看到已经复制了阿郁闷阿。还有 怎么把DataGrid的在客户端的table里面的值转成xml阿 我js不熟悉。。
xml的传递方法 好像和上面的方法不一样。 不懂。。
请教这两种传递方法。。 及xml怎么用js建立。。谢谢 思归大哥了 

解决方案 »

  1.   

    what is this TextBox1.Text?? remember when you use XmlHTTP, it has nothing to do with the current pageif(this.Request["id"]!=null)
    {
    string id = this.Request["id"].ToString();
    Session["id"] =id+"FFFF";
    }
    if (Session["id"]!=null)
    {
       Response.Clear();
       Response.ContentType = "text/plain";
       Response.Write(Session["id"].ToString());
       Response.End();
    }
    function send()
    {
           var oHttpReq = new ActiveXObject("MSXML2.XMLHTTP");
           var oDoc = new ActiveXObject("MSXML2.DOMDocument");
           var id="FFF";
           oHttpReq.open("GET", "send.aspx?id="+id, false);
           oHttpReq.send();//自己发送给自己
           alert(oHttpReq.responseText);
    }>>>>在客户端的table里面的值转成xml阿 var s = "<xml>" + YourCell.innerText + "</xml>";
      

  2.   

    remember when you use XmlHTTP, it has nothing to do with the current page
    对当前页面不好用,如果你用XMLHTTP。
      

  3.   

    是这样的 小日本要求 前台修改好后 一次性把当前table里面的值回滚到服务器段保存 并且前台的数据还要保持原样(递交会恢复修改前的值)所以我就想到了用xmlhttp,把table转成xml,并发送到后台用dataset接受,然后保存阿,难道还有别的更好的方法麻?
    思归大哥给个好点的方案吧  今天要纳品的 
    5。
    各位帮帮忙阿
      

  4.   

    我调试过了。确实这样,第一次递交给自己,确实能获得值,但是界面并不能显示出来。 只能把获得的值放入session中,刷新自己。
           oHttpReq.send();
           window.location.href="Send.aspx";
    这样后台能获得session中的值了。
      

  5.   

    use DataGrid, make textbox in all ItemTemplate<asp:DataGrid id="DataGrid1" runat="server">
     <Columns>
     <asp:TemplateColumn>
      <asp:TextBox id="textbox1" runat="server" Style="border-width:0" />
       ...
     </asp:TemplateColumn>
     </Columns>
    </asp:DataGrid>then allow the user to submit once, upon postback, in your submit button's click handler:foreach(DataGridItem dgi in DataGrid1.Items)
    {
      TextBox tb = (TextBox)dgi.FindControl("textbox1");
      string s = tb.Text; 
      //update db
    }
      

  6.   

    不好意思 思归大哥 小日本要在客户端对单个TextBox操作(即鼠标点击dataGrid的某个单元,出现textBox然后保存,不点击的时候,都是td),上次用你的方法实现了这个效果(td_onclick中innerHtml<input>)。 这样保存就有问题。晕倒,小日本的要求真是多。。偶没辙了阿。
      

  7.   

    <asp:TextBox id="textbox1" runat="server" Style="border-width:0" />will look like a label if the mouse cursor is not in the textbox, should look fine, try it, then ask your boss if it is ok
      

  8.   

    SORRY看错了,以为是我自己的问题http://community.csdn.net/Expert/topic/3618/3618398.xml?temp=.1009638被几个策划折磨死了
      

  9.   

    思归大哥 问题是 只有在客户段才能动态判断 某个Lable是不是可以出现TextBox.
    效果是这样的,Table中的任意TD都有可能点击不出现TextBox,但有些是可以出现TextBox,这个我是做在DataGrid_DataBind中 根据值,动态给每一个item增加showEditCell的js脚本,如果数据不对的话,就不出现该单元
    小日本的要求真的很高的 我们做外包的。。没办法我可是郁闷死了,看来最后一招,隐藏控件了 但是.net控件里放了xml格式的文件,不能读取(安全问题,不能屏蔽)。 想格式化(即加密),不知道怎么做我没辙了 各位大哥 大姐。。 救救我吧
      

  10.   

    >>>,Table中的任意TD都有可能点击不出现TextBoxmake those textboxes readonly, my method should be reasonableif you insist on using XMLHTTP, check outImplement Script Callback Framework in ASP.NET 1.x
    http://www.codeproject.com/aspnet/ScriptCallbackFramework.asp