Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
How to bind dataset to textbox?
Message
 
 
À
22/10/2013 10:59:55
Information générale
Forum:
ASP.NET
Catégorie:
Autre
Versions des environnements
Environment:
VB 9.0
OS:
Windows Server 2012
Network:
Windows 2008 Server
Database:
MS SQL Server
Application:
Web
Divers
Thread ID:
01585915
Message ID:
01586107
Vues:
17
>>>>>>>>>>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.
"The creative process is nothing but a series of crises." Isaac Bashevis Singer
"My experience is that as soon as people are old enough to know better, they don't know anything at all." Oscar Wilde
"If a nation values anything more than freedom, it will lose its freedom; and the irony of it is that if it is comfort or money that it values more, it will lose that too." W.Somerset Maugham
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform