如题:

解决方案 »

  1.   

    楼猪声明:
        datagrid中的所有数据都是用程序赋给的,包括数据源样式等!
      

  2.   

    使用动态的edittemplate应该可以实现,不过没有试过
      

  3.   

    我这里有一个例子,给我邮箱,我发给你,测试时使用http://localhost/testjava/WebForm10.aspx
      

  4.   

    是一个纯实现在客户端的网格,不是用DataGrid做的,里面实现了你的需求,可以做一个瘦客户端网格插件,开发相当灵活,你可以仿照它在DataGrid中实现该功能。
    不过测试时要先建立一个自己的数据表和数据库,建表的sql语句也在内,在WebForm9.aspx中修改数据库连接字符串。
      

  5.   

    <asp:TemplateColumn HeaderText="作者">
    <HeaderStyle Width="200px"></HeaderStyle>
    <ItemStyle BackColor="#E5F7FF"></ItemStyle>
    <ItemTemplate>
    <asp:Label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.NoticeAuthor") %>'>
    </asp:Label>
    </ItemTemplate>
    <EditItemTemplate>
    <asp:TextBox runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.NoticeAuthor") %>'>
    </asp:TextBox>
    </EditItemTemplate>
    </asp:TemplateColumn>在ItemIndexchange事件里调用EditCommand事件可以实现单击可编辑,双击没试过.....
      

  6.   

    先为所有的单元格添加客户端双击事件
    **_ondblclick(int RowId, int ColumnsID)RowID -- 行号
    Columns -- 列号在双击时把行号与列号传回服务器服务器根据传回的参数在单元格中添加一个Textbox 
      

  7.   

    双点dategrid在里边写事件,选种的单元可编辑,其他不可编辑就可以了吧。
      

  8.   

    我给你一个思路,我做的不能给你,公司的秘密。
    我做过一个,页面添加三个掩藏控件,两个TEXTBOX用于存放你点击DATAGRID的行号和单元格号,一个是按钮用于提交页面1。单元格添加双击事件,双击使的该行变颜色,脚本中用一个按钮提交页面(不要用SUBMIT,不然你不能适得它处于编辑)
    Private Sub DataGrid1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemDataBound  If e.Item.ItemType = ListItemType.Item Or _
                e.Item.ItemType = ListItemType.AlternatingItem Or _
                e.Item.ItemType = ListItemType.SelectedItem Then
                Dim i As Integer
                For i = 0 To e.Item.Cells.Count - 1
                    e.Item.Cells(i).Attributes.Add("onclick", "javascript:return doublecl('" & e.Item.ItemIndex + 1 & "','" & i & "');")
                Next
    //隐藏的控件
                If TextBox2.Text = CStr(e.Item.ItemIndex + 1) Then
                    'e.Item.BackColor = Color.FromName("#cccfcc")
                    e.Item.BackColor = Color.Red
                End If
            End If
    客户端脚本:
    function doublecl(e,i)
    {  if (confirm("are you sure delete " + e + "?"))
      {      document.getElementById("TextBox2").value=e;
             document.getElementById("TextBox3").value=i;
    document.getElementById("hideIDdelete").click();     }
      
    }
    然后在hideIDdelete的事件在写一个DATAGRID绑定,
    Private Sub hideIDdelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles hideIDdelete.Click
            If TextBox2.Text <> "" Then
                DataGrid1.EditItemIndex = CInt(TextBox2.Text)
                SqlDataAdapter1.Fill(DataSet11)
                DataGrid1.DataSource = DataSet11.Tables(0)
                DataGrid1.DataBind()
            End If
        End Sub
    你不过还要在DATAGRIDITEMCREATE是加一个代码
     If -1 < DataGrid1.EditItemIndex _
                    And DataGrid1.EditItemIndex = e.Item.ItemIndex Then
                For i As Integer = 0 To e.Item.Cells.Count - 1                If TextBox3.Text <> "" Then
                        If i <> CInt(TextBox3.Text) Then
                            e.Item.Cells(i).Text = ""  '这里是你要放的数据
                        End If
                    End If
                Next
            End If具体的你可以试试,我做的没有问题
      

  9.   

    If TextBox3.Text <> "" Then
                        If i <> CInt(TextBox3.Text) Then
                            e.Item.Cells(i).Text = ""  '这里是你要放的数据
    End If
    如果你还要放原来的值,好象也可以取的到的,
      

  10.   

    实在取不到的话,你可以到DATASET中取呀,反正行号和列号都有了
      

  11.   

    rickjelly2004(rick & jelly
    谢谢!!!
    调试中!!!!!!!!
      

  12.   

    看看
    http://blog.csdn.net/czhenq/archive/2004/09/24/115908.aspx我刚弄的
      

  13.   

    严重关注,能给个示例看看吗?
    [email protected]
      

  14.   

    全部使用模板列不就行了,将格式显示为平面的,在双击时,把处于编辑状态的格子还原成老的格式,把要变成编辑形式的格子变成编辑状态就行了(Javascript在客户端实现)