views:

60

answers:

1

I have a a gridview attached to an objectdatasource. In each row I have a bound textbox for input. I have a button beside the textbox in each row that launches a javascript popup for unit conversion.
The question is: how can i tell the unit converter (js function) what textbox (in which row) to populate the results with?

A: 

In the RowCreated event of the GridView:

Protected Sub MyGridView_RowCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles MyGridView.RowCreated
    If e.Row.RowType = DataControlRowType.DataRow Then
        Dim btn As Button = e.Row.Cells(0).FindControl("btnJavaScriptButton")
        Dim txt As TextBox = e.Row.Cells(1).FindControl("txtResults")

        btn.OnClientClick = "calculate(" & txt.ClientID & ");"
    End If
End Sub

Where 0 and 1 are the indices of the columns that contain the button and the textbox, and "calculate" is the name of your JavaScript function.

Jason Berkan