ASP.NET找到了具有相同ID“x”的多个控件.的FindControl
发布时间:2020-12-16 07:07:26 所属栏目:asp.Net 来源:网络整理
导读:得到以下错误 找到具有相同ID“ltlItemCode”的多个控件. FindControl要求控件具有唯一ID. 在页面加载时不会发生此错误,但是当我更改具有AutoPostBack =“true”的下拉列表的值时. 代码是 //Number of Services numberofServices = Int32.Parse(DCCFunctions
得到以下错误
找到具有相同ID“ltlItemCode”的多个控件. FindControl要求控件具有唯一ID. 在页面加载时不会发生此错误,但是当我更改具有AutoPostBack =“true”的下拉列表的值时. 代码是 //Number of Services numberofServices = Int32.Parse(DCCFunctions.GetNumServicesPerRoom(roomId.ToString())); additionalServices = new UserControls_AdditionalService[numberofServices - 1]; String htmlTable = String.Empty; Int32 cell = 1; Int32 rows = numberofServices; Int32 cols = 4; TableHeaderRow h = new TableHeaderRow(); TableHeaderCell hc1 = new TableHeaderCell(); hc1.Text = "Item Description"; h.Cells.Add(hc1); TableHeaderCell hc2 = new TableHeaderCell(); hc2.Text = "Item Price"; h.Cells.Add(hc2); TableHeaderCell hc3 = new TableHeaderCell(); hc3.Text = "Item Quantity"; h.Cells.Add(hc3); TableHeaderCell hc4 = new TableHeaderCell(); hc4.Text = "Item Sub Total"; h.Cells.Add(hc4); Table1.Rows.Add(h); // Open database connection DBConnection conn = new DBConnection(); // Retrieve details SqlCommand sqlGetDetails = conn.SetStoredProcedure("spGetAdditionalServicesDetails"); DBConnection.AddNewParameter(sqlGetDetails,"@roomId",ParameterDirection.Input,SqlDbType.Int,roomId); try { conn.Open(); SqlDataReader reader_list = sqlGetDetails.ExecuteReader(); if (reader_list.HasRows) { while (reader_list.Read()) { //returnVal = reader_list["Num"].ToString(); htmlTable += "<tr>" + Environment.NewLine; TableRow r = new TableRow(); additionalServices[cell - 1] = (ASP.usercontrols_additionalservice_ascx)LoadControl("~/UserControls/AdditionalService.ascx"); Literal ItemCode = (Literal)additionalServices[cell - 1].FindControl("ltlItemCode") as Literal; ItemCode.Text = reader_list["itemDescription"].ToString(); Literal ItemPrice = (Literal)additionalServices[cell - 1].FindControl("ltlItemPrice") as Literal; ItemPrice.Text = "€" + reader_list["unitPrice"].ToString(); Literal ItemTotal = (Literal)additionalServices[cell - 1].FindControl("ltlTotalPrice") as Literal; ItemTotal.Text = "€" + "0"; TableCell ItemCodeCell = new TableCell(); ItemCodeCell.Controls.Add((Literal)additionalServices[cell - 1].FindControl("ltlItemCode") as Literal); TableCell ItemCodePriceCell = new TableCell(); ItemCodePriceCell.Controls.Add((Literal)additionalServices[cell - 1].FindControl("ltlItemPrice") as Literal); TableCell ItemCodeTotalCell = new TableCell(); ItemCodeTotalCell.Controls.Add((Literal)additionalServices[cell - 1].FindControl("ltlTotalPrice") as Literal); TableCell c = new TableCell(); DropDownList qtyList = (DropDownList)additionalServices[cell - 1].FindControl("qtyList") as DropDownList; qtyList.Items.Add(new System.Web.UI.WebControls.ListItem("Select Quantity...","0")); qtyList.DataBind(); for (Int32 count = 1; count < 101; count++) { qtyList.Items.Add(new System.Web.UI.WebControls.ListItem(count.ToString(),count.ToString())); } //c.ColumnSpan = 5; c.Controls.Add((DropDownList)additionalServices[cell - 1].FindControl("qtyList") as DropDownList); r.Cells.Add(ItemCodeCell); r.Cells.Add(ItemCodePriceCell); r.Cells.Add(c); r.Cells.Add(ItemCodeTotalCell); //r.Controls.Add(additionalServices[cell - 1]); //cell += 1; // Add the row Table1.Rows.Add(r); } } reader_list.Close(); } catch (Exception ex) { M1Utils.ErrorHandler(ex); } finally { conn.Close(); }` 解决方法ItemCodeCell.Controls.Add((Literal)additionalServices[cell - 1].FindControl("ltlItemCode") as Literal); 我猜这是问题,看起来你一遍又一遍地添加相同的控件,但我不确定.尝试更改新添加的Literal的.ID. 此外,我以前从未使用过“EnsureID()”,但它似乎有所帮助.有点像 Literal duplicateLiteral = (Literal)additionalServices[cell - 1].FindControl("ltlItemCode") as Literal; duplicateLiteral.EnsureID(); ItemCodeCell.Controls.Add(duplicateLiteral); 这可能不起作用,因为看起来它会一遍又一遍地插入duplicateLiteral的相同副本,但是,我不确定. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp中select(下拉菜单)如何同时获取value和text的值(亲测+转
- asp.net-mvc – Angular 2:如何在不使用路由的情况下从URL
- .net – 有没有办法在Crystal Reports中渲染LaTeX方程?
- 如何组合WebResource.axd和ScriptResource.axd文件,以减少对
- asp.net – 在SignalR 2.0中使用现有的IoC容器
- asp.net – 从VS2008发布的等效msbuild命令
- asp.net-mvc-5 – 我需要在MVC Razor中编码属性值吗?
- asp.net-mvc-3 – 具有多个强类型部分视图的MVC 3 Razor表格
- asp.net-mvc – Microsoft.Owin.Security.IAuthenticationM
- 使用Asp.Net进行异步编程的最佳方法
推荐文章
站长推荐
- asp.net-mvc – 如何防止在DataBase First Model
- asp.net – 使用谷歌地图api的ASP .NET
- asp.net-mvc – 使用ASP.NET MVC响应HTTP HEAD请
- asp.net-mvc – 实体框架验证的单元测试
- 通过扩展让ASP.NET Web API支持JSONP
- asp.net – Visual Studio源代码控制/版本控制,V
- .NET Core采用的全新配置系统[3]: “Options模式
- asp.net-mvc – ASP.NET MVC局部视图和表单动作名
- asp.net-mvc-3 – 在MVC3中对Webgrid行进行内联编
- ASP.NET MVC 微信公共平台开发之验证消息的真实性
热点阅读