Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 803241
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 14, 20262026-05-14T23:43:41+00:00 2026-05-14T23:43:41+00:00

I have a simple ASP page with databound grid (bound to an object source).

  • 0

I have a simple ASP page with databound grid (bound to an object source). The grid is within the page of a wizard and has a ‘select’ checkbox for each row.

In one stage of the wizard, I bind the GridView:

protected void Wizard1_NextButtonClick(object sender, WizardNavigationEventArgs e)
    {
...
        // Bind and display matches
        GridViewMatches.EnableViewState = true;
        GridViewMatches.DataSource = getEmailRecipients();
        GridViewMatches.DataBind();

And when the finish button is clicked, I iterate through the rows and check what’s selected:

protected void Wizard1_FinishButtonClick(object sender, WizardNavigationEventArgs e)
{
    // Set the selected values, depending on the checkboxes on the grid.
    foreach (GridViewRow gr in GridViewMatches.Rows)
    {
        Int32 personID = Convert.ToInt32(gr.Cells[0].Text);
        CheckBox selected = (CheckBox) gr.Cells[1].FindControl("CheckBoxSelectedToSend");

But at this stage GridViewMatches.Rows.Count = 0! I don’t re-bind the grid, I shouldn’t need to, right? I expect the view-state to maintain the state. (Also, if I do rebind the grid, my selection checkboxes will be cleared)

NB: This page also dynamically adds user controls in OnInit method. I have heard that it might mess with the view state, but as far as I can tell, I am doing it correctly and the viewstate for those added controls seems to work (values are persisted between postbacks)

Thanks a lot in advance for any help!

Ryan

UPDATE: Could this be to do with the fact I am setting the datasource programatically? I wondered if the asp engine was databinding the grid during the page lifecycle to a datasource that was not yet defined. (In a test page, the GridView is ‘automatically’ databound’. I don’t want the grid to re-bound I just want the values from the viewstate from the previous post!

Also, I have this in the asp header: ViewStateEncryptionMode=”Never” – this was to resolve an occasional ‘Invalid Viewstate Validation MAC’ message

For reference, my GridView is defined as follows:

<asp:GridView ID="GridViewMatches" runat="server" AllowSorting="True" AutoGenerateColumns="False" 
    BackColor="White" BorderColor="#E7E7FF" BorderStyle="None" BorderWidth="1px" CellPadding="3" 
    OnDataBinding="GridViewMatches_OnBinding">
        <Columns>
            <asp:BoundField DataField="PersonID"><ItemStyle CssClass="hidden"/></asp:BoundField>
            <asp:TemplateField>
                <ItemTemplate>
                    <asp:CheckBox ID="CheckBoxSelectedToSend" runat="server"
                        Checked='<%# DataBinder.Eval(Container.DataItem, "SelectedToSend") %>'/>
                </ItemTemplate>
...
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-14T23:43:41+00:00Added an answer on May 14, 2026 at 11:43 pm

    Iterating the controls in the PreInit event (to detect if the ‘add another control’ or ‘remove another control’ button was pressed) invalidates the view state!!

    Here is the method called from PreInit

    public Control GetPostBackControl(Page thePage)
        {
            //return null;
    
            Control myControl = null;
            string ctrlName = thePage.Request.Params.Get("__EVENTTARGET");
            if (((ctrlName != null) & (ctrlName != string.Empty)))
            {
                myControl = thePage.Master.FindControl(ctrlName);
            }
            else
            {
                foreach (string Item in thePage.Request.Form)
                {
                    Control c = thePage.Master.FindControl(Item);
                    if (((c) is System.Web.UI.WebControls.Button))
                    {
                        myControl = c;
                    }
                }
    
            }
    
            return myControl;
        }
    

    (I take no credit for this methd, I found it on the web)

    If the first line is uncommented, the viewstate is maintained.

    Awful!

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Ask A Question

Stats

  • Questions 402k
  • Answers 402k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • Editorial Team
    Editorial Team added an answer Finally I find out a way to solve my issue.… May 15, 2026 at 4:53 am
  • Editorial Team
    Editorial Team added an answer I don't think it's worth checking whether to execute the… May 15, 2026 at 4:53 am
  • Editorial Team
    Editorial Team added an answer This is a really inefficient first-pass at this problem, which… May 15, 2026 at 4:53 am

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

Top Members

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.