Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net Gridview行、切换按钮文本和行属性在回发时恢复为原始-如何修复?_Asp.net_Gridview - Fatal编程技术网

Asp.net Gridview行、切换按钮文本和行属性在回发时恢复为原始-如何修复?

Asp.net Gridview行、切换按钮文本和行属性在回发时恢复为原始-如何修复?,asp.net,gridview,Asp.net,Gridview,这很奇怪。我有一个gridview,每行都有项目模板复选框和按钮。我使用JQuery切换按钮的文本值,JQuery表示用户向购物车添加行以进行购买。我在表单上有一个与gridview分离的按钮,当单击该按钮时,会在代码中引发一个事件,以旋转行并处理选定的切换按钮文本行。但按下“处理”按钮后,网格行将恢复到其原始状态原始按钮文本,并修改了先前选定行的行属性。我不是在重新绑定网格。这也不是一个更新网格。现在,复选框一直工作得很好,但按钮文本显然非常不同。谁能告诉我为什么会发生这种情况,以及我如何纠正

这很奇怪。我有一个gridview,每行都有项目模板复选框和按钮。我使用JQuery切换按钮的文本值,JQuery表示用户向购物车添加行以进行购买。我在表单上有一个与gridview分离的按钮,当单击该按钮时,会在代码中引发一个事件,以旋转行并处理选定的切换按钮文本行。但按下“处理”按钮后,网格行将恢复到其原始状态原始按钮文本,并修改了先前选定行的行属性。我不是在重新绑定网格。这也不是一个更新网格。现在,复选框一直工作得很好,但按钮文本显然非常不同。谁能告诉我为什么会发生这种情况,以及我如何纠正它?我的一个想法是创建一列隐藏的复选框,当我切换按钮文本时,我也可以切换复选框。但我真希望我能理解为什么会发生这种事。此外,在已选中“处理”按钮的回发中,屏幕也将以其原始状态呈现

这是我的表格,带有复选框和按钮:

        <div class="OneHundredPercentWide" style="padding-top:7px">
        <asp:Panel ID="Panel1" runat="server" Width="100%" >
            <asp:GridView id="grvSessionOrderDownloads" runat="server" BorderWidth="2px" BorderStyle="Solid" BorderColor="#C0C0FF"
                Font-Names="Arial" Font-Bold="True" Font-Size="8pt" GridLines="Horizontal" AutoGenerateColumns="False" 
                HorizontalAlign="Left" ForeColor="Blue" CellPadding="2" AllowSorting="True" Width="100%" 
                OnRowDataBound="grvSessionOrderDownloads_OnRowDataBound" DataKeyNames="SORD_ID">

                <HeaderStyle Font-Names="Arial" HorizontalAlign="Center" ForeColor="White" BackColor="#152EE5" 
                    CssClass="sessionOrderDownloadHeaders" />
                <RowStyle BackColor="White" ForeColor="#333333" />
                <AlternatingRowStyle BackColor="#A5B0FF" />
                <Columns>
                    <asp:BoundField Visible="False" DataField="SORD_ID" HeaderStyle-Width="0px" >
                <HeaderStyle Width="0px" />
                    </asp:BoundField>
                   <asp:TemplateField HeaderText="Select <br /> Files" HeaderStyle-ForeColor="White" > 
                 <ItemTemplate >
                            <asp:CheckBox ID="chkSelectVideo" runat="server" OnClick="checkboxClicked(this)" ToolTip="Select file for download" 
                                Enabled='<%# Eval("SORD_EnableSelectionCheckBox") %>' Checked='<%# Eval("SORD_SelectedForDownloadFlag") %>' />
                  </ItemTemplate>
                        <HeaderStyle Width="6%" />
                        <ItemStyle VerticalAlign="Middle" HorizontalAlign="Center" />
                    </asp:TemplateField><asp:TemplateField HeaderText="Prior <br /> Downld" HeaderStyle-ForeColor="White" > 
                        <ItemTemplate >
                            <asp:Button id="btnBuy" runat="server" OnClientClick="btnBuyToggle(this); return false;"
                                 Text="BUY This" CssClass="buyButton" Visible='<%# Eval("SORD_ShowBuyButton") %>' />
                         </ItemTemplate>
                        <HeaderStyle Width="7%" />
                        <ItemStyle CssClass="sessionOrderDownloadItems" VerticalAlign="Middle" HorizontalAlign="Center" />
                    </asp:TemplateField>
                </Columns>
             </asp:GridView>
谢谢,,
Jim

一旦在浏览器中更改了复选框更改,就会将其发回服务器。但是,当您使用JS更改网格中按钮或其他字段的文本时,更改的按钮文本或其他字段不会发送到服务器。因此,当按钮在下一次回发中呈现时,它使用原始默认值,即BUY This


为了保留按钮文本,您必须随按钮一起创建一个隐藏字段。在OnClientClick JS事件中更改按钮的文本时,同时更改隐藏字段的值。隐藏字段的更改将发送到服务器,这有助于您在流程按钮单击事件中读取这些更改。

当您单击按钮时,它将发回以刷新页面。在客户端执行的任何操作都将消失。在哪个事件中,您将Gridview与datasource绑定?如果不回发,我将在页面加载时绑定网格。我没有在任何事件上做任何进一步的重新绑定,没有行更新等。但是我的复选框更改在单击按钮时通过ok,为什么它们不同?我想我会尝试使用一组隐藏的复选框,我会用gridview按钮切换这些复选框。然后我希望我能在点击过程按钮上阅读它们。明白了,谢谢你的解释。我应该能按你解释的那样做。非常感谢你。吉姆
Dim gvr As GridViewRow
    For Each gvr In grvSessionOrderDownloads.Rows
        Dim selBtn As Button = CType(gvr.FindControl("btnBuy"), Button)
        If Not selBtn Is Nothing Then
            If selBtn.Enabled And selBtn.Visible Then
                Dim strSORD_ID As String = grvSessionOrderDownloads.DataKeys(gvr.RowIndex)("SORD_ID").ToString
                If selBtn.Text = "BUY Video" Then
                    // Note: I will process here
                End If
            End If
        End If
    Next