Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

reading textbox values from repeater

Posted on 2004-10-21
13
Medium Priority
?
505 Views
Last Modified: 2008-02-01
hi,
I want to read back values in a textbox form a repeater. Initally the textboxes gat their values from a database...

I want to read all the values and then when one update button (outside the repeater) is pressed so it can recalcuate and add records back to the database. (I think i can acheive this part via sql) as long as i had the new qty in the textbox and an id number for the row to update... any ideas... my repeater looks like this...i guess the id can be retreived by tying each textbox to a unique ID <id=databinder.eval()..

<ItemTemplate>
      <table width="700">                                                                                                <tr>
                  <td width="175" class="lblBlue"><%# trimName(databinder.eval(Container.dataitem, "ProductName"))%></td>
                  <td width="75" class="lblBlue"><%# databinder.eval(Container.dataitem, "strength") %></td>
                  <td width="75" class="lblBlue"><%# databinder.eval(Container.dataitem, "pacSize") %></td>
                  <td width="75" class="lblBlue"><%# databinder.eval(Container.dataitem, "StorageForm") %></td>
                  <td width="50" class="lblBlue" align="center">
                  <asp:TextBox Runat=server Width=15 Text='<%# databinder.eval(Container.dataitem, "qty") %>' MaxLength=1>
                  </asp:TextBox></td>
                  <td width="75" class="lblBlue"><%#(databinder.eval(Container.dataitem, "Newprice"))%>
                  <td width="50" class="lblBlue"><%# databinder.eval(Container.dataitem, "subtotal") %><br>
                  </td>
                  <td width="50" class="sideMenu1Txt">
                  <asp:linkbutton Runat="server" CommandName="delitem" CommandArgument='<%# databinder.eval(Container.dataitem, "Productid") '>remove</asp:linkbutton></td>
            </tr>
      </table>
</ItemTemplate>
0
Comment
Question by:rsbadhan
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
13 Comments
 
LVL 17

Expert Comment

by:AerosSaga
ID: 12374618
Dim _myUC_SrchTxt As TextBox = Page.FindControl("UCtlsearch1_srchTxt")
srchTxt = _myUC_SrchTxt.Text
0
 
LVL 18

Expert Comment

by:tusharashah
ID: 12374693
You can use following code for looping in Repeater in adding value 1 by 1:

Dim sum As Double
For Each ri As RepeaterItem In Repeater1.Items

        Dim _tb as TextBox = CType(ri.FindControl("TextBox1"), Repeater)

        sum = sum + CType( _tb.Text, Double )

Next


-tushar
0
 
LVL 28

Expert Comment

by:mmarinov
ID: 12374728
Hi rsbadhan,

for ( int index=0; index < repeaterId.Items.Count; index++ )
{  
    TextBox tb = (TextBox)repeaterId.Items[index].FindControl("TextBoxID");
}

but you have to declare ID property of the TextBox control
<asp:TextBox Runat=server Width=15 Text='<%# databinder.eval(Container.dataitem, "qty") %>' MaxLength=1 ID="yourID">
               </asp:TextBox>

B..M
0
Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

 

Author Comment

by:rsbadhan
ID: 12374739
UCtlsearch1_srchTxt .... this will be my productID? i.e id of the textbox
0
 

Author Comment

by:rsbadhan
ID: 12374822
tushar
getting a symtax error ...ri is not declared...
RS
0
 
LVL 18

Expert Comment

by:tusharashah
ID: 12374828
Correction:

Dim sum As Double
For Each ri As RepeaterItem In Repeater1.Items
        Dim _tb as TextBox = CType(ri.FindControl("TextBox1"), TextBox) ' Corrected this line
        sum = sum + CType( _tb.Text, Double )
Next

double sum;
foreach (RepeaterItem ri in Repeater1.Items) {
 TextBox _tb = ((Repeater)ri.FindControl("TextBox1"));
 sum = sum + ((double)_tb.Text);
}
0
 
LVL 18

Expert Comment

by:tusharashah
ID: 12374866
Again in C#

double sum;
foreach (RepeaterItem ri in Repeater1.Items) {
 TextBox _tb = ((TextBox)ri.FindControl("TextBox1"));
 sum = sum + ((double)_tb.Text);
}

-tushar
0
 

Author Comment

by:rsbadhan
ID: 12374880
VB code behind is fine... where do i declare ri ?
think i just need to declare it and it will be exaclty waht i need...
RS
0
 
LVL 18

Expert Comment

by:tusharashah
ID: 12374934
When you use For Each ri As ReapeterItem then ri is declared in the For loop itself...

but since you are getting such error.. you can try declareing it before for each loop...
--------------------------------------------------------------------------------
Dim sum As Double
Dim ri As RepeaterItem
For Each ri In Repeater1.Items
        Dim _tb as TextBox = CType( ri.FindControl("TextBox1"), TextBox) ' Corrected this line
        sum = sum + CType( _tb.Text, Double )
Next
--------------------------------------------------------------------------------

-tushar
0
 
LVL 18

Accepted Solution

by:
tusharashah earned 1500 total points
ID: 12374959
Or try like following

--------------------------------------------------------------------------------
Dim sum As Double
Dim i As Integer = 0
While i < Repeater1.Items.Count
 Dim _tb As TextBox = CType(Repeater1.Items(index).FindControl("TextBox1"), TextBox)
 sum = sum + CType(_tb.Text, Double)
 i += 1
End While
--------------------------------------------------------------------------------

-tushar
0
 

Author Comment

by:rsbadhan
ID: 12375053
ok problem i am having is...

1. i have declared the <asp:textbox id=textbox1 .... ( *********is that correct?)
2. Does it need autopostback=true for the value change to be recognised? (customers can change theis value, which is why it has to recalculate)
3. i need basically an array of all the values in the repeater.. old and new..(ALL the ones in the textboxes in the repeater)

it reads old values but not the changed ones

Thanks for you sticking with this.

RS
0
 

Author Comment

by:rsbadhan
ID: 12375229
thi sis what i have so far

<asp:TextBox ID=textbox1 Runat=server Width=15 Text='<%# databinder.eval(Container.dataitem, "qty") %>' MaxLength=1>
                                                                                                                        
</asp:TextBox></td>
   

Sub readTxtBox()
        Dim x As Integer
        Dim ri As RepeaterItem
        x = Repeater1.Items.Count
        Dim qtys(x) As String
        For Each ri In Repeater1.Items
            Dim _tb As TextBox = CType(ri.FindControl("TextBox1"), TextBox)
            qtys(x) = _tb.Text
            x = +1
        Next
    End Sub

but it only reads the value that is first in the textbox..ie the one from the database...not the one the user is entering

0
 

Author Comment

by:rsbadhan
ID: 12375431
ok, thanks for your help.. the issue is postback, i have to load the repeater only once if not postback then it works fine
0

Featured Post

Hire Technology Freelancers with Gigs

Work with freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely, and get projects done right.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

A quick way to get a menu to work on our website, is using the Menu control and assign it to a web.sitemap using SiteMapDataSource. Example of web.sitemap file: (CODE) Sample code to add to the page menu: (CODE) Running the application, we wi…
User art_snob (http://www.experts-exchange.com/M_6114203.html) encountered strange behavior of Android Web browser on his Mobile Web site. It took a while to find the true cause. It happens so, that the Android Web browser (at least up to OS ver. 2.…
Have you created a query with information for a calendar? ... and then, abra-cadabra, the calendar is done?! I am going to show you how to make that happen. Visualize your data!  ... really see it To use the code to create a calendar from a q…
Please read the paragraph below before following the instructions in the video — there are important caveats in the paragraph that I did not mention in the video. If your PaperPort 12 or PaperPort 14 is failing to start, or crashing, or hanging, …

604 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question