驻留在updatePanel中的DataGrid如何根据行选择更新控件?我有一个网格[Grid1],它在单击按钮[search]时构建其数据行,我设法通过将其放入UpdatePanel来对其进行ajax化,并且工作正常。在grid1被ajaxified之前,另一个网格[Grid2]和一些其他控件[textandlabels]用于在单击grid1中的行时填充/更新。Grid2和其他控件用于填充/更新网格的OnItemCommand事件1。ItItemCommand中的代码将相关数据绑定到Grid2和其他控件。将Grid1放入更新面板后,他们停止了更新。如果我将Grid2和其他控件放在同一个UpdatePanel中,但页面的设计方式使我无法在与第一个Grid相同的UpdatePanel中使用这些控件,我也不打算使用另一个UpdatePanel,它会起作用美好的。我希望我有所作为。我是.Net的新手,所以请原谅。请在下面找到代码。后面的代码停止工作protectedvoidgrdJobs_ItemCommand(objectsource,DataGridCommandEventArgse){if(e.CommandName=="Load"){functionToBindDataToGrid2();functionToBindDataToOtherControls();}}protectedvoidgrdJobs_ItemDataBound(objectsender,DataGridItemEventArgse){e.Item.Attributes.Add("onclick","javascript:__doPostBack('grdJobs$ctl"+((Convert.ToInt32(e.Item.ItemIndex+3).ToString("00")))+"$ctl00','')");}GridView是一个复杂的asp.net服务器控件。在UpdatePanel中更新Grid1后,您将很难更新Grid2。但是,在Grid1更新后,JavaScript可以在客户端执行。您可以在更新面板中更新Grid1,在更新Grid1后执行javascript,这将更新页面上的HTML。问题是用Javascript更新Grid2将是一场噩梦。这是我正在谈论的示例:AjaxEnabledGridviewwithJavaScriptinASP.NET。这是一个彻头彻尾的黑客,大量的工作,当你的同事不得不维护它时,他们会恨你。如果您想更新标签或下拉菜单,那是可能的,但是使用Javascript更新GridView并将这些更新保留在回发中是一项艰巨的挑战。在UpdatePanel的属性中,将更新模式设置为“Conditional”并将ChildrenAsTriggers设置为“true”。另一种选择是将按钮移到更新面板内,这样您就不必使用触发器了。在一个页面上使用多个UpdatePanel。它不影响布局。然后,您可以使用触发器(用于面板)来影响您想要影响的控件。这是一个帮助您理解的页面。http://www.asp.net/ajax/tutorials/understanding-asp-net-ajax-updatepanel-triggers你的问题取决于你如何在行点击时触发回发,即:这个方法protectedvoidgrdJobs_ItemDataBound(objectsender,DataGridItemEventArgse){e.Item.Attributes.Add("onclick","javascript:__doPostBack('grdJobs$ctl"+((Convert.ToInt32(e.Item.ItemIndex+3).ToString("00")))+"$ctl00','')");手动编写__doPostBack脚本通常总是一个坏主意。我相信您需要使用的是ClientScriptManager.GetPostBackEventReference,它将为您创建一个类似的回发脚本,但会考虑其他各种因素,包括控件的AJAX化。试一试:以上是C#学习教程:HowtoupdateacontrolbasedonrowselectioninaDataGridresidedinupdatePanel?分享的所有内容,如果对你有用,需要了解更多C#学习教程,希望大家多多关注——("onclick",ClientScriptManager.GetPostBackEventReference(e.Item,string.Empty);}本文采集自网络,不代表立场,如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处: