【问题标题】:Update panel refresh ASP.Net gridview更新面板刷新 ASP.Net gridview
【发布时间】:2015-08-10 09:14:05
【问题描述】:

我在更新面板中有一个 ASP.Net 网格视图。我在 Modalpopup 扩展器中显示数据。我也在使用实体框架。 以下代码有效,但我需要确保我使用的是最佳做法

ASP.Net Gridview

 <asp:ScriptManager ID="ScriptManager1" runat="server">   </asp:ScriptManager>
 <asp:UpdatePanel ID="UpdatePanel1"  UpdateMode="Conditional" runat="server">
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="grdOutput" />
        <asp:AsyncPostBackTrigger ControlID="btnDelete"  />
        <asp:AsyncPostBackTrigger ControlID="btnSave"  />
    </Triggers>
    <ContentTemplate>
        <asp:Button ID="btnNew" OnClick="btnNew_Click" Text=" new"  runat="server"/>
            <asp:GridView ID="grdOutput" runat="server" Width="200px" AutoGenerateColumns="False"  DataKeyNames="Id" >
                <Columns>
                    <asp:BoundField DataField="Id" HeaderText="Id" ReadOnly="True" SortExpression="Id" />
                    <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />
                    <asp:TemplateField HeaderText="Edit">
                        <ItemTemplate>
                            <asp:LinkButton ID="lnkEdit" runat="server" OnClick="lnkEdit_Click">Edit</asp:LinkButton>
                        </ItemTemplate>
                    </asp:TemplateField>
                </Columns>
            </asp:GridView>
         <asp:EntityDataSource ID="EntityDataSource1" runat="server" ConnectionString="name=FMPEntities" DefaultContainerName="FMPCommsEngEntities" EnableFlattening="False" EntitySetName="OutputTypes" EntityTypeFilter="OutputType">
         </asp:EntityDataSource>
         <asp:Panel ID="pnlEdit" runat="server" CssClass="modalPopup" style = "display:none">
     <table >
        <tr><td colspan="2"> Output Type Details</td></tr>
        <tr>
            <td>
                <asp:Label ID="lblOutputTypeID" runat="server" Text="ID"></asp:Label>
            </td>
            <td>
                <asp:TextBox ID="txtOutPutTypeID" runat="server"></asp:TextBox>
            </td>
       </tr>
       <tr>
            <td>
                <asp:Label ID="lblName" runat="server" Text="Name"></asp:Label>
            </td>
            <td>
                <asp:TextBox ID="txtOutputTypeName" runat="server"></asp:TextBox>
            </td>

       </tr>
       <tr>
           <td> <asp:Button ID="btnSave" runat="server" OnClick="Save" Text="Save" /></td>
           <td><asp:Button ID="btnCancel" runat="server" Text="Cancel"  /></td>
           <td><asp:Button Id="btnDelete" runat="server" Text="Delete" OnClick="Delete" /></td>
       </tr>
    </table>
</asp:Panel> 
<asp:Panel ID="pnlAdd" runat="server" CssClass="modalPopup" style = "display:none">
    <table >
        <tr><td colspan="2"> Output Type Details</td></tr>
        <tr>
            <td>
                <asp:Label ID="lblADDName" runat="server" Text="Name"></asp:Label>
            </td>
            <td>
                <asp:TextBox ID="txtAddName" runat="server"></asp:TextBox>
            </td>
        </tr>
       <tr>
           <td> <asp:Button ID="btnADDSave" runat="server" OnClick="Insert" Text="Save" /></td>
           <td><asp:Button ID="btnCancel1" runat="server" Text="Cancel"  /></td>
       </tr>
    </table>
</asp:Panel>
<cc1:ModalPopupExtender ID="popup" runat="server" CancelControlID="btnCancel" DropShadow="false"                                     PopupControlID="pnlEdit" TargetControlID = "link" BackgroundCssClass="modalBackground">
</cc1:ModalPopupExtender>
<cc1:ModalPopupExtender ID="AddPopup" runat="server" CancelControlID="btnCancel1" DropShadow="true" PopupControlID="pnlAdd" TargetControlID = "Addlink" BackgroundCssClass="modalBackground" >     </cc1:ModalPopupExtender> 
</ContentTemplate>
</asp:UpdatePanel>

我需要在插入、更新和删除之后刷新 gridview。

下面是我使用的代码。有没有更好的方法来刷新数据源。 我将gridview数据源设置为实体数据源,并在每次保存、插入和删除之后对其进行数据绑定。

Protected Sub Save(sender As Object, e As EventArgs)
    UpdateOutputType(Integer.Parse(txtOutPutTypeID.Text), txtOutputTypeName.Text)
    grdOutput.DataSource = EntityDataSource1
    grdOutput.DataBind()

End Sub
Protected Sub Delete(sender As Object, e As EventArgs)
    DeleteOutputType(Integer.Parse(txtOutPutTypeID.Text))
    grdOutput.DataSource = EntityDataSource1
    grdOutput.DataBind()
End Sub

我尝试使用 UpdatePanel1.update()gridview 没有刷新。

刷新gridview的最佳方法是什么?

【问题讨论】:

  • 这与经典 ASP 无关。请删除标签。

标签: asp.net gridview


【解决方案1】:

UpdatePanel1.update() 不会更新您的网格。您在保存/删除方法中使用它的方式是正确的。你需要重新绑定它。由于您已对更新面板触发器进行了编码,因此更新面板刷新将自动发生。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多