CheckBox Проверенное состояние внутри gridview - PullRequest
0 голосов
/ 20 января 2012

У меня есть простой gridview

            <asp:GridView ID="GridView1" runat="server" DataKeyNames="OriginatorID" AutoGenerateColumns="False"
            AllowPaging="True" OnPageIndexChanging="GridView1_PageIndexChanging" PageSize="5"
            OnPreRender="GridView1_PreRender">
            <Columns>
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:CheckBox ID="CheckBox1" runat="server" />
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:BoundField DataField="Originator" HeaderText="Originator" />
            </Columns>
        </asp:GridView>

Я звоню по следующему коду внутри GridView1_PageIndexChanging event

        foreach (GridViewRow item in GridView1.Rows)
        {
            try
            {
                if (item.RowType == DataControlRowType.DataRow)
                {
                    CheckBox chk = (CheckBox)(item.Cells[0].FindControl("CheckBox1"));

                    // chk.checked will access the checkbox state on button click event
                    if (chk.Checked)
                    {
                        //code if checked
                    }
                    else
                    {

                    }
                }

            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

проблема, если я установил флажок и выбрал следующую страницу в gridview, он никогда не выполнит код внутри

 if (chk.Checked)

, хотя я проверял чек-боксы, они не получают их состояние, как проверено.

почему это могло произойти?

Ответы [ 2 ]

3 голосов
/ 20 января 2012

Попробуйте это:

Проверьте, поместили ли вы свой код для привязки данных в GridView в

If (!IsPostBack)
{
     //Code for Binding Data to GridView 
} 
1 голос
/ 20 января 2012

по моей вине. Я не сделал следующее

  if (!Page.IsPostBack)
            {

                Binddata();//Bind data to gridview
            }

ранее метод Binddata () не был внутри

if (! Page.IsPostBack)

которая вызвала проблему

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...