点击datagrid中的一行,将这一行的某一列中的一个字符串取出,然后显示在textbox中,如何实现?
关键是如何响应这个点击事件

解决方案 »

  1.   

    rivate 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
                e.Item.Attributes.Add("onclick", "javascript:return doublecl('" & e.Item.ItemIndex + 1 & "');")            If TextBox2.Text = CStr(e.Item.ItemIndex + 1) Then
                    e.Item.BackColor = Color.Red
                End If
            End Ifend sub
    <script>
    function doublecl(e)
    {  if (confirm("are you sure delete " + e + "?"))
      {      document.getElementById("TextBox2").value=e
    document.Form1.submit()
             document.getElementById("hideIDdelete").click();  
        }
      
    }
      

  2.   

    另外如果是实现DROPDOWNLIST联动的,这一方面的,参考
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Loadcall binddatagrid()
     For i = 0 To datagrid.items.count
                AddHandler CType(dgListArticle.Items(i).Cells(5).FindControl("DropDownList1"), DropDownList).SelectedIndexChanged, AddressOf Selectchange
            Next
    end subPrivate Sub Selectchange(ByVal sender As Object, ByVal e As System.EventArgs)
            Dim drop As DropDownList
            Dim s As String
            Dim str As String
            Dim arr As Array        drop = CType(sender, DropDownList)
            arr = drop.ClientID.Split("_")
            str = "第" & CInt(arr(2).ToString.Substring(3)) - 2 & "個的"
            s = drop.SelectedItem.Text
            Response.Write("<script>alert('" & str & s & "')</script>")
        End Sub
      

  3.   

    能用c#写吗?BTW:我对JS不大懂,再弱弱的问一句
    <script>
    function doublecl(e)
    {  if (confirm("are you sure delete " + e + "?"))
      {      document.getElementById("TextBox2").value=e
    document.Form1.submit()
             document.getElementById("hideIDdelete").click();  
        }
      
    }这些代码放哪儿?
      

  4.   

    要实现的是:
    页面上部有一个datagrid,下面是一些textbox,每个textbox对应着上面datagrid的一列,当点击datagrid一行时,textbox显示该行的内容
      

  5.   

    用一个隐藏列保存主键(id),假设在第一列,并添加选择列,点选择列的select,在DataGrid的_ItemCommand
    if (e.CommandName.ToString()=="Select")
    {
     TextBox1.Text=e.Item.Cells[1].Text.ToString(); //取得该列的id
     TextBox2.Text=e.Item.Cells[2].Text.ToString(); //取得该列的....
    }
      

  6.   

    给个思路:当datagrid的selectchange事件触发时,对你的text等控件进行一次赋值;
      

  7.   

    回复人: bingbing1981(^_^) ( ) 信誉:86  2004-09-07 10:29:00  得分: 0  
     
     
       能用c#写吗?BTW:我对JS不大懂,再弱弱的问一句
    <script>
    function doublecl(e)
    {  if (confirm("are you sure delete " + e + "?"))
      {      document.getElementById("TextBox2").value=e
    document.Form1.submit()
             document.getElementById("hideIDdelete").click();  
        }
      
    }这些代码放哪儿?  
     
    放在HTML中HEAD中
    <script>
    function doublecl(e)
    {
        document.getElementById("TextBox2").value=e
        document.Form1.submit()
            
    }
    </script>
      

  8.   

    能不能不加什么选择列,就直接点某一行就实现我描述的功能:页面上部有一个datagrid,下面是一些textbox,每个textbox对应着上面datagrid的一列,当点击datagrid一行时,textbox显示该行的内容
      

  9.   

    不知道你是要在后台控制,还是在前台控制,在后台的话,用一个SUB就行了,前台的话要JAVASCRIPT写的
      

  10.   

    不行的,如果你不使用选择列的方式,那么datagrid在经过编译以后在客户端就生成了一个静态的table,你说点table会有效果吗?显然没有啊,所以你还是屈服吧,呵呵
      

  11.   

    可以
    //双击DataGrid的行引发事件
    e.Item.Attributes.Add("dbclick", "javascript:setValue()");放置一个隐藏控件
    <script language="javascript">
    <!--
    function setValue()
    {
       window.document.form1.Isdbclick.value="true";
                       ---Form 的 ID
       window.document.form1.submit();
    }
    -->
    </script><input type="hidden" name="Isdbclick" value="false">private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    if (Page.IsPostBack)
    {
    if (Request.Form["Isdbclick"]!=null)
    {
    {
    if (Request.Form["Isdbclick"].ToString()=="true")
    {
    f(1);
    }
    }
    }
    }public void f(int id)
    {
        ...给TextBox赋值
    }