我有一个包含UpdatePanel的UserControl.当我把它放在页面上时,它会抛出以下错误:
无法取消注册具有ID"ReviewContentUpdatePanel"的UpdatePanel,因为它未在ScriptManager中注册.如果UpdatePanel已从控制树中删除并稍后再次添加(可能不受支持),则可能会发生这种情况.参数名称:updatePanel
ReviewContentUpdatePanel是更新面板的名称,它没有被删除或添加到代码中,它存在于aspx页面中,不会被删除.有没有人遇到过这个?
我有一个包含两个ContentPlaceHolders的页面.一个有DropDown和另一个包含内容的UpdatePanel.
如果DropDown的selectedItemChanged事件位于不同的ContentPlaceholder中,如何触发UpdatePanel的更新?
由于UpdatePanel1不知道DropDown1,因此以下操作无效:
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true">
<ContentTemplate>
Some content that needs to be updated here...
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="DropDown1" EventName="SelectedIndexChanged" />
</Triggers>
</asp:UpdatePanel>
Run Code Online (Sandbox Code Playgroud)
一种方法是制作一个ajax页面方法,当选择DropDown项目时,该方法将由页面上的javascript调用.然后在代码后面,在该页面方法中,调用UpdatePanel1.Update().
有更简单的选择吗?
我需要以编程方式禁用JQuery选项卡.选项卡位于更新面板(Ajax)中,更新面板位于ASP.NET页面中.码:
<link type="text/css" rel="stylesheet" href="http://ui.jquery.com/testing/themes/base/ui.all.css" />
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript" src="http://ui.jquery.com/testing/ui/ui.core.js"></script>
<script type="text/javascript" src="http://ui.jquery.com/testing/ui/ui.tabs.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#example").tabs();
});
function hidetabs(){
$(document).ready(function(){
$("#example").tabs();
$('#example').data('disabled.tabs', [1, 2]);});
}
</script>
<%@ Page Language="C#" MasterPageFile="~/any.Master" AutoEventWireup="true" Codebehind="anycode.aspx.cs"
Inherits="anycode" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<asp:UpdatePanel ID="UpdatePanel_Deal_Import" runat="server">
<ContentTemplate>
<div id="example">
<ul>
<li><a href="#fragment-1"><span>One</span></a></li>
<li><a href="#fragment-2"><span>Two</span></a></li>
<li><a href="#fragment-3"><span>Three</span></a></li>
</ul>
<div id="fragment-1">
<p>
First tab is active by default:</p>
<pre><code>$('#example').tabs();</code></pre>
<asp:Button ID="btn_Save" OnClick="btn_Save_Click" runat="server" Text="Save" Visible="False" CommandName="Save">
</div>
<div id="fragment-2">
Lorem ipsum dolor sit amet, …Run Code Online (Sandbox Code Playgroud) 我有以下情况:我在ajax updatepanel中有一个文本框.无论用户在文本框中输入什么,我都必须显示一条消息(不同的消息取决于用户输入的数据).
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Always">
<ContentTemplate>
<asp:TextBox ID="txtMyTexbox" runat="server" Width="500px" OnTextChanged="txtMyTexbox_TextChanged" AutoPostBack="true"></asp:TextBox>
<br />
<asp:Label ID="lblMessage" runat="server" CssClass="errorMessage" Visible="false">Hello World</asp:Label>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="txtMyTexbox" />
</Triggers>
</asp:UpdatePanel>
Run Code Online (Sandbox Code Playgroud)
在服务器端,我在页面加载时写了以下内容
ScriptManager.GetCurrent(this).RegisterAsyncPostBackControl(txtMyTexbox);
Run Code Online (Sandbox Code Playgroud)
和这样的方法
protected void txtMyTexbox_TextChanged(object sender, EventArgs e)
{
if (.....)
{
lblMessage.Visible = false;
}
else
{
lblMessage.Visible = true;
}
}
Run Code Online (Sandbox Code Playgroud)
我现在的问题是:当用户键入文本框时,它不会导致OnTextChanged事件.
我错过了什么吗?
是否可以使用JavaScript或jQuery手动更新UpdatePanel?
我所拥有的是我页面顶部的TextBox.当用户离开TextBox我想运行一些服务器代码(它会将记录添加到我的数据库),然后在页面底部我有一个UpdatePanel,它将被刷新.UpdatePanel有一个GridView,它将为添加的记录添加一个条目)
我在UpdatePanel中有一个FileUpload控件.我已经使用scriptmanager成功注册了上传按钮,以进行完整的回发.我唯一的问题是FileUpload.HasFile总是返回null.注意:当我将更新面板外的FileUpload控件移动时,一切正常.是否有解决方案或解决方法.
谢谢.
让我切入追逐.我的场景如下:我有自定义添加字段来过滤RadGrid,过滤效果很好.当我想在RadGrid中使用EditForm编辑记录时出现问题.它曾经工作正常,但后来我选择正确的行有一些问题(我总是选择错误的行)所以这就是我做的修复它.
所以,带过滤器的RadGrid看起来像这样:

我所做的是使用Session,这将帮助我们稍后确定过滤后的RadGrid数据源是否已启动或是否为默认值.
protected void btnSearch_Click(object sender, EventArgs e)
{
Session["SearchKontakti"] = "1";
}
Run Code Online (Sandbox Code Playgroud)
之后我不得不使用if循环设置PreRender以检查之前提到的Session.
protected void gvKontakti_PreRender(object sender, EventArgs e)
{
int idKontakt = Convert.ToInt32(Request.QueryString["idk"]);
if (Session["SearchKontakti"] == "1")
{
var kontakti = from k in db.Kontakt
select k;
int idTipUsera = Convert.ToInt32(rcbTipUsera.SelectedValue);
int idTvrtka = Convert.ToInt32(rcbTvrtka.SelectedValue);
if (rcbTvrtka.SelectedValue != "0")
{
kontakti = kontakti.Where(k => k.idFirma == idTvrtka);
}
if (rcbTipUsera.SelectedValue != "0")
{
kontakti = kontakti.Where(k => k.idOvlasti == idTipUsera);
}
if (chkAktivan.Checked == true)
{
kontakti …Run Code Online (Sandbox Code Playgroud) 我正在开发一个由另一个针对ASP.NET 3.5的开发人员构建的网站.我正在尝试围绕一些代码添加更新面板,但每当我尝试这样做时,我会在标题中发布错误.我试过包含ajaxcontroltoolkit dll没有运气.
以下是来自Web配置文件的引用:
<compilation debug="true">
<assemblies>
<add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Web.Abstractions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.ServiceModel.Web, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Data.Services.Client, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.Services.Design, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.Entity, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
</assemblies>
</compilation>
Run Code Online (Sandbox Code Playgroud)
当我从Visual Studio 2010中的工具箱中将updatepanel拖到页面上时,这是添加的寄存器语句:
<%@ Register assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" namespace="System.Web.UI" tagprefix="asp" %>
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
我面临着以下问题firefox和google chrome:
Sys.ParameterCountException: Parameter count mismatch.
Run Code Online (Sandbox Code Playgroud)
我调用以下javascript方法onclick:
<script type="text/javascript">
var confirmSubmited = false;
function SubmitWithLog(par_name, par_address, frm) {
jQuery.ajax({
url: "/LogAction.ashx?par_name=" + par_name + "&par_address=" + par_address,
type: "GET",
timeout: 3000,
async: true, // you can try and async:false - maybe is better for you
data: action = 4, // here you send the log informations
cache: false,
success: function(html) {
jQuery(frm).submit();
},
error: function(responseText, textStatus, XMLHttpRequest) {
jQuery(frm).submit();
}
});
return false;
} …Run Code Online (Sandbox Code Playgroud) 我有一个用户控件,带有链接按钮(用于分页)和更新面板内的转发器.分页工作正常,但每次点击进入下一页时都会导致整页回发.
更新面板如下所示:
<asp:UpdatePanel ID="up1" runat="server" UpdateMode="Always">
<ContentTemplate>
<asp:Repeater ID="rptOrganizations" runat="server">
<HeaderTemplate>
<table>
<thead>
<tr>
<th>Organization</th>
<th>State</th>
<th>Accredited Since</th>
</tr>
</thead>
</table>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td>
<asp:Literal ID="ltlInstitution" runat="server" />
</td>
<td>
<asp:Literal ID="ltlState" runat="server" />
</td>
<td>
<asp:Literal ID="ltlAccreditedDate" runat="server" />
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
<uc2:RepeaterPaging ID="rpPager" runat="server" PageSize="10" OnNextButtonClickEvent="btnNext_Click" OnPreviousButtonClickEvent="btnPrev_Click" />
</ContentTemplate>
</asp:UpdatePanel>
Run Code Online (Sandbox Code Playgroud)
并且用户控件的内容如下所示:
<asp:LinkButton ID="btnPrev" runat="server" OnClick="btnPrev_Click">Previous</asp:LinkButton> |
<asp:LinkButton ID="btnNext" runat="server" OnClick="btnNext_Click">Next</asp:LinkButton>
<asp:Literal ID="ltlNumResults" runat="server" /> results returned.
Run Code Online (Sandbox Code Playgroud)
到目前为止,我已经尝试为用户控件添加异步回发触发器,这会导致异步回发,但不会更新更新面板中的其余文本.换句话说,发生异步回发并显示下一页,但转发器中的原始文本也位于其下方.
我还确认我的链接按钮上设置了IDS,因为这可以在更新面板中触发完整的回发.
我尝试更改更新面板模式(Always,Conditional,ChildrenAsTriggers等).
这些都没有区别 - 实际上导致异步回发的唯一方法是使用触发器,但更新面板中的其余内容不会更新,因此我得到重复的内容.有任何想法吗?
updatepanel ×10
asp.net ×9
ajax ×4
jquery ×3
asp.net-ajax ×2
c# ×2
javascript ×2
.net ×1
asp.net-3.5 ×1
file-upload ×1
postback ×1
radgrid ×1