Tag: asp.net ajax

如何在asp.net中回帖后将焦点设置在文本框上

我在更新面板中有一个文本框。 当用户键入内容时,我从数据库中获取相关数据并将其填入另一个文本框中。 我的问题是,在autopostback之后,重点放在任何文本框上都会丢失。 我如何使用javascript或代码管理这个,因为我在我使用的代码中使用了两者 System.Web.UI.ScriptManager.GetCurrent(this).SetFocus(this.txtReference); 和JavaScript我发现还有一个 var postbackElement; Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(beginRequest); Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(pageLoaded); function beginRequest(sender, args) { postbackElement = args.get_postBackElement(); } function pageLoaded(sender, args) { var updatedPanels = args.get_panelsUpdated(); if (typeof (postbackElement) === “undefined”) { alert(‘if Loop’); return; } else if (postbackElement.id.toLowerCase().indexOf(‘button1’) > -1) { alert(‘else’); for (i = 0; i < updatedPanels.length; i++) { document.getElementById('’).focus(); } } […]

PageMethods和Session

我已经搜索了这个解决方案的高低。 任何见解将受到高度赞赏。 情况:当在单个页面中有多个PageMethod调用时,每个方法调用都会对Session对象进行锁定,从而阻塞。 只有将@Page指令转为False|ReadOnly才能使PageMethod调用异步 结果:当Page指令是默认值(读/写)但会话未在页面的任何位置使用时,不会阻止调用。 在页面级别对会话的任何读取或写入都会阻止页面方法调用。 问题:在@Page指令@Page EnableSessionState=ReadOnly是非常严格的,并且不想采用该路由。 pagemethod调用可以阻止吗? 并仍然访问会话? (可能不是写但只是阅读)

GetScriptReferences不会被调用

我编写了一个包含以下内容的自定义控件: [assembly: System.Web.UI.WebResource(“InSysControls.AssignmentLists.AssignmentLists.js”, “text/javascript”)] namespace InSysControls { [ToolboxData(” “), ParseChildren(true, “Items”)] public class AssignmentLists : CompositeDataBoundControl, IScriptControl, INamingContainer { #region IScriptControl Members public IEnumerable GetScriptDescriptors() { ScriptControlDescriptor descriptor = new ScriptControlDescriptor(this.GetType().FullName, this.ClientID); yield return descriptor; } public IEnumerable GetScriptReferences() { yield return new ScriptReference(“InSysControls.AssignmentLists.AssignmentLists.js”, “InSysControls”); } #endregion } } 有谁知道不应该调用GetScriptDescriptors或GetScriptReferences的原因? Control的其他部分工作得很好。

XMLHttpRequest()不被识别为IsAjaxRequest?

要在会话超时进行Ajax请求时将用户重定向到登录页面,我实现了以下自定义属性, 与Unauthorize request相关的代码如下, protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext) { if (filterContext.HttpContext.Request.IsAjaxRequest()) { filterContext.HttpContext.Response.StatusCode = 403; filterContext.Result = new JsonResult { Data = new { Error = “SessionTimeOut” }, JsonRequestBehavior = JsonRequestBehavior.AllowGet }; filterContext.HttpContext.Response.End(); } ……………….. 这适用于ajax请求($ .ajax)。 但是filterContext.HttpContext.Request.IsAjaxRequest()不会将XMLHttp请求识别为ajax请求。 var xhr = new XMLHttpRequest(); xhr.open(‘POST’, “…URL”); xhr.send(formdata); 有没有人遇到类似的问题? 什么是解决方案?

使用Ajax在ASP.Net MVC3 Razor中渲染局部视图

我希望获得的基本function是在选择下拉列表项时更新表的内容。 当用户进行新选择并从数据库中检索新信息并重新填充表时,这将更新。 值得注意的是,我希望.change()使用的DropDownListFor不包含在AjaxForm中,而是出现在页面的其他地方(不可否认的是另一种forms) 为了达到这个目的,我看了一下这个问题: 在ASP.Net MVC3 Razor中动态渲染局部视图,使用Ajax调用Action ,它可以很好地按照我想做的方式进行。 到目前为止,我有一个控制器方法来处理为局部视图填充自定义视图模型: [HttpPost] public ActionResult CompanyBillingBandDetails(int id = 0) { var viewModel = new BillingGroupDetailsViewModel(); var billingGroupBillingBands = _model.GetAllRecordsWhere(x => x.BillingGroupId == id).ToList(); foreach (var band in billingGroupBillingBands) { viewModel.BillingBands.Add(band.BillingBand); } return PartialView(“BillingGroupDetailsPartial”, viewModel); } ViewModel我希望填充每个调用: public class BillingGroupDetailsViewModel { public List BillingBands { get; set; } } […]

更改UpdatePanel外部的TextBox中的文本

我在UpdatePanel中有一个gridview(gridview在弹出窗口中显示)。 单击该网格中的选择按钮,我试图在页面中设置文本框文本。 但它不起作用,如果我删除更新面板,那么它将工作。 请帮忙。 这是我在aspx中的代码: .. .. .. No Records To Display

如何根据驻留在updatePanel中的DataGrid中的行选择更新控件?

我有一个网格[Grid1],当点击一个按钮[search]时构建它的dataRows,我设法通过将它放在UpdatePanel中进行Ajax化,它运行正常。 在对网格1进行Ajax化之前,另一个网格[Grid2]和一些其他控件[文本和标签]用于在单击网格1中的行时进行填充/更新。 Grid2和其他控件用于在网格的OnItemCommand事件上填充/更新1.ItItemCommand中的代码将相关数据绑定到Grid2和其他控件。 将Grid 1放入更新面板后,它们停止更新。 如果我将Grid2和其他控件放在同一个更新面板中,但是页面的设计方式使得我不能在与第一个Grid相同的UpdatePanel中使用这些控件,也不打算使用另一个更新面板,它将正常工作。 我希望我有所作为。 我是.Net的新手,所以请原谅。 请在下面找到代码。 <asp:ButtonColumn Text="” ButtonType=”LinkButton” HeaderText=”Add” CommandName=”Load” ItemStyle-cssClass=”Col_9_Item_2″> 后面代码中的代码停止工作 protected void grdJobs_ItemCommand(object source, DataGridCommandEventArgs e) { if (e.CommandName == “Load”) { functionToBindDataToGrid2(); functionToBindDataToOtherControls(); } } protected void grdJobs_ItemDataBound(object sender, DataGridItemEventArgs e) { e.Item.Attributes.Add(“onclick”, “javascript:__doPostBack(‘grdJobs$ctl” + ((Convert.ToInt32(e.Item.ItemIndex + 3).ToString(“00”))) + “$ctl00’,”)”); }

如何访问文本框,使用asp.net Web表单从代码后面的更新面板内标签

我在更新面板中定义了一些绑定到转发器控件的控件。 我需要隐藏并显示基于匿名字段的用户名和国家/地区,但问题是我无法以编程方式访问更新面板中定义的控件。 我怎样才能访问这些控件,我在网上看了一下但找不到很多引用 以下是aspx页面和.cs页面的代码 <asp:Label ID="lblComPostDate" runat="server" Text='’> <asp:Label ID="lblComMSGDetails" runat="server" Text='’> <asp:Label ID="lblComUserName" runat="server" Text='’>, <asp:Label ID="lblComCountry" runat="server" Text='’> <asp:Label ID="lblUserAnonymous" runat="server" Text='’ Visible=false> 代码背后 protected string FormatCommentDate(object dt) { string date; date = String.Format(“{0:hh:mm, MMMM dd, yyyy}”, dt); return date; } protected string showUserName(object userName) { String str=null; try { Boolean isUserAnonymous = […]

Asp.net updatepanel Listbox没有刷新布局

所以我的问题很简单,我有2个列表框和一个按钮。 当在listbox2中选择一个项目并单击该按钮时,我想将所选项目添加到listbox1。 在我添加第二个项目之前,所有接缝都能正常工作。 然后listbox1不刷新它的项目…… public partial class Default2 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { ListBox2.Items.Add(new ListItem(“1”, “1”)); ListBox2.Items.Add(new ListItem(“2”, “2”)); ListBox2.Items.Add(new ListItem(“3”, “3”)); ListBox2.Items.Add(new ListItem(“4”, “4”)); ListBox2.Items.Add(new ListItem(“5”, “5”)); } } protected void Button1_Click(object sender, EventArgs e) { if (ListBox2.SelectedIndex != -1) { ListBox1.Items.Add(ListBox2.SelectedItem); } } }

使用UpdateProgress的问题

我的ASP.NET页面上有一个按钮,它从我的数据库中获取一些数据并将其显示在gridview上。 这个过程需要一段时间,所以我想我会添加一个updateprogress AJAX控件。 现在,当我单击按钮时,updateprogress图像显示并且数据正在从我的数据库中成功获取(我从我的数据库中的一些日志中检查了这一点)。 但有两个问题: (1)updateprogress图像仅显示约2分钟。 但我的buttonclick事件大约需要5分钟才能完成。 基本上,updateprogress甚至在我的任务完成之前就停止显示,这违背了它的目的。 (2)GridView没有显示出来。 如果我不使用scriptmanager / AJAX,它会正确显示。 有任何想法吗? 一些相关的代码片段: 代码文件部分: protected void btnGenerateReport_Click(object sender, EventArgs e) { FetchAccounts(); long startId = FetchAuditData(); AggregateAuditData(startId); dsAnalysisReport = GenerateDataSet(); if (dsAnalysisReport == null || dsAnalysisReport.Tables.Count == 0) lblErrorText.Text = “No Data Found for the input information”; else BindData(dsAnalysisReport); } public void FetchAccounts() { […]