2009-07-01 117 views
0

我有一個數據網格。它的第一列是ClientType。在單擊第一列中的每個單元即ClientType時,該值將顯示在名爲txtClientType的文本框中。爲此我使用了下面的代碼。關於單元格在數據網格中點擊

Private Sub dtGridsearch_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles dtGridsearch.ItemDataBound 
    Dim lt As ListItemType = e.Item.ItemType 
    If lt = ListItemType.Item Or lt = ListItemType.AlternatingItem Then 
     Dim currentCell As TableCell = CType(e.Item.Controls(0), TableCell) 
     dtGridsearch.Columns(0).InitializeCell(currentCell, 0, ListItemType.Item) 
     Dim s As New System.Web.UI.WebControls.Style 
     s.CssClass = "Hyp" 
     Dim str As String = CType(e.Item.DataItem, DataRowView).Row(1) 
     currentCell.ApplyStyle(s) 
     currentCell.Attributes.Add("OnClick", "javascript:PassBack('" & CType(e.Item.DataItem, DataRowView).Row(0) & "','" & str.Trim & "');") 
    End If 
End Sub 

在javascript中我用下面的代碼結合值的文本框

function PassBack(FieldId,FieldValue) 
{ 
    document.getElementById(txtClientType).value = FieldValue;  
} 

上述代碼在IE。但是在Chrome中,當單擊datagrid中的單元格時,相應的值不會顯示在文本框中。我正在使用VS2008。可能是什麼原因?

回答

0

第一:「javascript:」無效javascript,它是一個協議指令,如果您將一個href屬性分配給A標籤,這將是適當的。

二:嘗試「點擊」,而不是「onclick」事件

三:你可能可以處理這個數據在你行模板標籤綁定...

<asp:Button ... OnClientClick="PassBack('<%#Eval(...)%>','<%#Eval(...)%>'); return false;" .../> 

四你應該有一個「返回false;「在您的PassBack調用之後,以防止觸發默認處理程序。

相關問題