Значение флажка сетки не изменилось, как получить значение при нажатии кнопки? - PullRequest
1 голос
/ 31 января 2012

Я использую asp.net для своего веб-приложения, когда я нажимаю на флажок внутри gridview, и после этого я проверяю его значение при нажатии кнопки, оно не показывает мне точное значение вот код asp

<asp:GridView ID="dgvMenu" runat="server" Width="100%" CssClass="grid" GridLines="None"
                                                AutoGenerateColumns="False">
                                                <Columns>

                                                    <asp:TemplateField>
                                                        <HeaderTemplate>
                                                            View
                                                        </HeaderTemplate>
                                                        <ItemTemplate>
                                                            <asp:CheckBox ID="View" runat="server" Checked="<%#Bind('View') %>" />
                                                        </ItemTemplate>
                                                        <ItemStyle Width="50px" HorizontalAlign="Center" />
                                                    </asp:TemplateField>


                                                    <asp:BoundField DataField="Menu" HeaderText="Menu Name">
                                                        <HeaderStyle HorizontalAlign="Left" CssClass="firstcol" />
                                                        <ItemStyle CssClass="firstcol" />
                                                    </asp:BoundField>
                                                </Columns>
                                            </asp:GridView>

и вот его версия vb, чтобы получить ее значение при нажатии кнопки версии

For Each item As GridViewRow In dgvMenu.Rows
            Dim MenuName As String = item.Cells.Item(1).Text
            Dim chkView As CheckBox = DirectCast(item.FindControl("View"), CheckBox)
        Next

я хочу проверить его значение, независимо от того, отмечен он или нет, чтобы я мог обработать его значение

1 Ответ

0 голосов
/ 31 января 2012

Я предполагаю, что вы привязываете ваш GridView даже на обратных передачах.Вы должны только связать его if not PageIsPostback.

Поместите это в Page_Load:

Private Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
    If Not IsPostBack Then
        ' following function loads data and binds it to the GridView '
        BindGrid()
    End If
End Sub

Если вы привязываете сетку DataBind к сетке при каждой обратной передаче, ViewState не может быть перезагружен, следовательно, все измененные значения будут потеряны исобытия не будут запускаться правильно.

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