我在更新面板旁边有一个girdview,girdview允许编辑,删除我数据库中的数据,我有一个名为Insert的按钮,当点击插入按钮时,会出现一个ajax模型弹出面板,里面有弹出面板,有一个下拉列表。
我的问题是,每当我的girdview面板发生变化时,如何更新弹出式面板中的下拉列表。
我尝试在girdview中更改一些数据,然后我必须刷新整篇论文(我不想做的事情)来更新下拉列表。
<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
CodeBehind="Test.aspx.cs" Inherits="Pages" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajaxToolkit" %>
<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<asp:Button ID="RegisterButton" runat="server" Text="Register" OnClick="callmethod" />
<asp:ScriptManager ID="ScriptManager" runat="server">
</asp:ScriptManager>
<asp:Panel ID="MainPanel" runat="server" Style="display: none" CssClass="modalPopup">
<div>
<asp:Table ID="InputTable" runat="server">
<asp:TableRow>
<asp:TableCell>
<asp:Label ID="LabelName" runat="server" Text="name"> </asp:Label>
</asp:TableCell>
<asp:TableCell>
<asp:TextBox ID="TName" runat="server"></asp:TextBox>
</asp:TableCell>
<asp:TableCell>
<asp:RequiredFieldValidator ID="NameRequiredFieldValidator" ControlToValidate="TName"
runat="server" ErrorMessage="RequiredFieldValidator">Cannot be Empty</asp:RequiredFieldValidator>
</asp:TableCell>
<asp:TableCell><asp:DropDownList ID="TProjectMID" runat="server"> </asp:DropDownList></asp:TableCell>
</asp:TableRow>
</asp:Table>
<p style="text-align: center;">
<asp:Button ID="OkButton" runat="server" Text="OK" UseSubmitBehavior="false" OnClick="OkButton_Click" />
<asp:Button ID="CancelButton" runat="server" Text="Cancel" />
</p>
</div>
</asp:Panel>
<ajaxToolkit:ModalPopupExtender ID="ModalPopupExtender" runat="server" TargetControlID="RegisterButton"
BackgroundCssClass="modalBackground" PopupControlID="MainPanel" OkControlID="OkButton"
OnOkScript="onOk()" CancelControlID="CancelButton" PopupDragHandleControlID="InfoPanel" />
<asp:UpdatePanel ID="UpdatePane" runat="server">
<ContentTemplate>
<asp:GridView ID="GridView" runat="server" AllowPaging="True" AllowSorting="True"
AutoGenerateColumns="False" DataKeyNames="ProjectID" DataSourceID="DataSource"
Width="921px">
<Columns>
<asp:CommandField ShowDeleteButton="True" CausesValidation="false" causeValidation = "false"/>
<asp:BoundField DataField="ID" HeaderText="ProjectID" SortExpression="ProjectID"
ReadOnly="True" />
<asp:BoundField DataField="Name" HeaderText="ProjectName" SortExpression="ProjectName" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="DataSource" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
DeleteCommand="DeleteProject" DeleteCommandType="StoredProcedure">
<DeleteParameters>
<asp:Parameter Name="original_ID" Type="String" />
<asp:Parameter Name="original_Name" Type="String" />
</DeleteParameters>
</asp:SqlDataSource>
</ContentTemplate>
</asp:UpdatePanel>
答案 0 :(得分:0)
使用AJAX动态填充下拉列表。或者.net无论如何都可以将下拉列表绑定到gridview。上次我用它是2.0。 :)
答案 1 :(得分:0)
为什么每次用户点击Insert-Button时都不能将DropDownlist绑定到它的DataSource?您还应该将弹出窗口的内容包装在自己的UpdatePanel中,并且只显示弹出窗口Update
,以确保只重新加载弹出窗口,而不是整个页面。
编辑:
缺少回发的原因可能是任何Validator都阻止它。将CausesValidation=false
设置为打开Popup的Register-Button。另一点:因为按钮位于UpdatePanel UpdatePane
之外,我会考虑创建一个AsyncPostBacktrigger,RegisterButton
为ControlID
。