2009-07-01 12 views
0

私はDataGridを持っています。その1列目はClientTypeです。最初の列、つまりClientTypeの各セルをクリックすると、その値がtxtClientTypeというテキストボックスに表示されます。そのために私は次のコードを使用しました。DataGridのセルクリックについて

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 

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

Iがテキストボックスに値をバインドするために、次のコードを使用するJavaScriptで上記コードがIEで働きます。しかし、Chromeでは、データグリッド内のセルをクリックすると、対応する値がテキストボックスに表示されません。私はVS2008を使用しています。理由は何でしょうか?

答えて

0

最初に:javascript:は無効ですjavascript、プロトコルディレクティブです.Aタグにhref属性を割り当てていた場合はこれが適切です。

第二:代わりに「クリック時」

第三の「onclickの」試してください:あなたはおそらく、あなたの行テンプレートタグにバインディングこのデータを扱うことができる...

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

第四に、あなたはおそらく必要があります」偽を返す; " PassBackコールの後に、デフォルトのハンドラがトリガされないようにします。

関連する問題