大家好,我正在使用第一次更新面板部分回发概念,但我无法实现这已经尝试了很多这样做,但每当它在后期调整时,我正在调试时。这是我可以任何一个人面对这里的问题是我的代码。
我希望当dropdownlist索引更改事件触发时不会使用fullpostback附加我的代码。
的aspx: -
asp:UpdatePanel ID="ProjectPanel" runat="server" >
<ContentTemplate>
<asp:Panel ID="Panel1" runat="server">
<tr>
<td>
<asp:Label ID="Label10" runat="server" Text="Projects:" Font-Bold="True" CssClass="label2"></asp:Label>
<asp:DropDownList ID="ProjectsDropDownList" CssClass="txt-input-class" Height="20px"
Width="191px" runat="server" DataSourceID="ProjectDataSource"
DataTextField="Name" DataValueField="Id"
onselectedindexchanged="ProjectsDropDownList_SelectedIndexChanged"
AutoPostBack="true">
</asp:DropDownList>
</td>
</tr>
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
<asp:SqlDataSource ID="ProjectDataSource" runat="server" ConnectionString="<%$ ConnectionStrings:LocalSqlServer %>"
ProviderName="<%$ ConnectionStrings:LocalSqlServer.ProviderName %>"
SelectCommand="SELECT [Id], [Name], [Description], [IsActive], [CreateDate], [ModifyDate], [CreatedBy] FROM [Projects]">
</asp:SqlDataSource>
aspx.cs
protected void ProjectsDropDownList_SelectedIndexChanged(object sender, EventArgs e)
{
Console.Write("Project");
}
答案 0 :(得分:1)
ASP.NET将IsPostBack
设置为true
以进行部分回发(因为它们仍然是回发)。
检查scriptManager.IsInAsyncPostBack
属性值以检测部分回发,而不是Page.IsPostBack
。
答案 1 :(得分:0)
在页面中包含脚本管理器并提及UpdateMode
<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server">
<ContentTemplate>
//your controls to be updated
</ContentTemplate>
</asp:UpdatePanel>
答案 2 :(得分:0)
要验证回发是否作为UpdatePanel的一部分发生,请检查以下内容 -
if (ScriptManager.GetCurrent(this).IsInAsyncPostBack)
每次回发是全部还是部分都会将IsPostback
属性设置为true。