>>>>>>>>>>>On the same page I have a GridView bound to a dataset. Below the GridView there is a textbox (or several textboxes). As user navigates through the GridView (clicking on this or that row) I want the value/text in the textbox(s) to be updated according to new row in the dataset. My understanding is I need to bind the textbox(s) to the same dataset. How do you do it? An example, of one textbox binding to the dataset would be very helpful.
>>>>>>>>>>
>>>>>>>>>>If you don't mind round-tripping to the server you can wire up the GridView.SelectedIndexChanged event and do something like this:
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
>>>>>>>>>> {
>>>>>>>>>> TextBox1.Text = GridView1.SelectedRow.Cells[2].Text;
>>>>>>>>>> //etc
>>>>>>>>>> }
>>>>>>>>>
>>>>>>>>>I prefer not to make the "trip" back to the server. I am working on having a button field on the GridView and wire it to a method of the page. The only thing I don't know - yet - if the page has to be reposted on the call to this method. If so I will look for way to do it with jQuery so there is no reposting of the page and no trip back to the server.
>>>>>>>>>Thank you.
>>>>>>>>
>>>>>>>>Not quite so easy. Wire up the GridView.RowDataBound event in c#:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
>>>>>>>> {
>>>>>>>> if (e.Row.RowType == DataControlRowType.DataRow)
>>>>>>>> {
>>>>>>>> e.Row.Attributes.Add("onClick", "javascript:void selectRow(this);");
>>>>>>>> }
>>>>>>>> }
then script on the page:
function selectRow(i) {
>>>>>>>> document.getElementById("TextBox1").value = i.cells[5].innerText;
>>>>>>>> }
>>>>>>>
>>>>>>>Thank you very much. I will try to "translate" your code into jQuery code. I have been studying jQuery over the weekend and am anxious to try it.
>>>>>>jQuery would just be :
function selectRow(i) {
>>>>>> $('#TextBox1').val(i.cells[5].innerText);
>>>>>> }
TBH, when I need this type of functionality now I use WebAPI and angular. angular gives you a nice MVVM two-way binding on the client.
>>>>>
>>>>>Thank you for the example of using jQuery.
>>>>>As to WebAPI and angular, this is the first time I hear about these technologies. You mentioned MVVM but will WebAPI and angular work on ASP.NET Web Forms, as far as you know?
>>>>
>>>>You can use it in a Web Forms application - but where it *is* being used a simple HTML page is probably easier to work with than using a Web Form (aspx) page.
>>>
>>>Thank you. A lot to learn. And I found a couple of tutorials that I will go through at some point.
>>>
>>>Right now I am trying to figure how to pass to a jQuery function the row object values of GridView.
>>
>>You can't really do that directly. jQuery only sees what's on the client and at that point your datarow values are just tr's in a td...
>>Using the WebApi approach you would simply pass the data as a collection of JSON objects and use angular (or similar) to bind the elements of the page to those objects. As a side effect this can greatly reduce the workload on the server and the volume of server/client traffic.
>>
>>> I think I need to learn JSON for that or maybe something else. My head is spinning.
>
>You are correct (as I am learning) that jQuery will only see the tr's and td's. But if we skip angular for now since it is too much for me to take at this point, I found the following code online (that I am trying to adopt to my case):
>
>
>var rowData = {
> "EquipmentID": $(this).closest('tr').find('#id_number').text(),
> "Company": $(this).closest('tr').find('.eq_descr').text(),
> "Model": $(this).closest('tr').find('.model').text()
>
>
>I understand that 'this' is the object passed to the jQuery function() but I can't seem to figure how to use what is inside the Find() function. So far all I get is a bunch of empty strings (for each value in the pair). And I am not sure if the use of 'closest' is correct.
Can you post the link for that code so that I can see it in context. Ta