C# 尝试以编程方式将跨度在内的div添加到asp.net页面上的div。获取错误/空引用
我有一个需要添加到asp.net页面的动态数据元素数。我目前正试图通过循环遍历结果数据集来实现这一点,如下所示:C# 尝试以编程方式将跨度在内的div添加到asp.net页面上的div。获取错误/空引用,c#,asp.net,controls,C#,Asp.net,Controls,我有一个需要添加到asp.net页面的动态数据元素数。我目前正试图通过循环遍历结果数据集来实现这一点,如下所示: protected void Page_Load(object sender, EventArgs e) { UserDB db = new UserDB(); string employeeIDOrName = Request.QueryString["employeeID"]; DataSet ds = db.GetUserSearch(employeeI
protected void Page_Load(object sender, EventArgs e)
{
UserDB db = new UserDB();
string employeeIDOrName = Request.QueryString["employeeID"];
DataSet ds = db.GetUserSearch(employeeIDOrName);
DataTable table = ds.Tables[0];
foreach (DataRow row in table.Rows)
{
string employeeID = row[0].ToString();
string emailAddress = row[1].ToString();
string phone = row[2].ToString();
string details = emailAddress + " | " + phone;
UserControl uc = new Controls_EmployeeSearchResults(employeeID, details);
placeholder1.Controls.Add(uc);
}
}
在employeeSearchResults代码中,我有:
<div class="returnDataBoxSup" onclick="insertAddedSup('1091912','Shawna Burns');">
<div id="searchResults" runat="server">
</div>
</div>
对于ascx页面和
public Controls_EmployeeSearchResults(string name, string details)
{
/*<div class="returnDataBoxSup" style="overflow:hidden;" onclick="insertAddedSup('1091912','Shawna Burns');">
<span ID="spanName" runat="server" style="text-transform:capitalize; white-space:nowrap"></span><br />
<span ID="spanDetails" runat="server" style="font-size:0.7em; white-space:nowrap"></span>
</div>*/
//Div
HtmlGenericControl div1 = new HtmlGenericControl("div");
div1.ID = "returnDataBoxSup";
div1.Attributes["style"] = "overflow:hidden;";
div1.Attributes["onClick"] = "insertAddedSup('1091912','Shawna Burns');";
div1.Attributes["class"] = "returnDataBoxSup";
//Span Name
HtmlGenericControl span1 = new HtmlGenericControl("span");
span1.ID = "span_" + name;
span1.Attributes["style"] = "text-transform:capitalize; white-space:nowrap";
span1.InnerHtml = name;
//Span Details
HtmlGenericControl span2 = new HtmlGenericControl("span");
span2.ID = "spanD_" + name;
span2.Attributes["style"] = "font-size:0.7em; white-space:nowrap";
span2.InnerHtml = details;
div1.InnerHtml = span1.ToString();
div1.InnerHtml += span2.ToString(); ;
//div1.Controls.Add(span1);
//div1.Controls.Add(span2);
//searchResults = new HtmlGenericControl("div");
searchResults.InnerHtml = div1.ToString();
}
public Controls\u EmployeeSearchResults(字符串名称、字符串详细信息)
{
/*
*/
//Div
HtmlGenericControl div1=新的HtmlGenericControl(“div”);
div1.ID=“returnDataBoxSup”;
div1.Attributes[“style”]=“溢出:隐藏;”;
div1.Attributes[“onClick”]=“insertAddedSup('1091912','Shawna Burns');”;
div1.Attributes[“class”]=“returnDataBoxSup”;
//跨度名称
HtmlGenericControl span1=新的HtmlGenericControl(“span”);
span1.ID=“span_”+名称;
span1.属性[“样式”]=“文本转换:大写;空白:nowrap”;
span1.InnerHtml=名称;
//跨度细节
HtmlGenericControl span2=新的HtmlGenericControl(“span”);
span2.ID=“氨纶”+名称;
span2.属性[“样式”]=“字体大小:0.7em;空白:nowrap”;
span2.InnerHtml=详细信息;
div1.InnerHtml=span1.ToString();
div1.InnerHtml+=span2.ToString();
//第1部分。控件。添加(span1);
//第1部分。控件。添加(span2);
//searchResults=新的HtmlGenericControl(“div”);
searchResults.InnerHtml=div1.ToString();
}
在代码背后。我第一次尝试将span控件添加到div中,但收到一个异常。当我试图将控件添加到内部html时,它说它无法将控件类型转换为字符串。有什么方法可以让我做我想做的事吗
我接收数据集中的员工数据,然后我想循环这些数据,为每个员工记录创建一个样式化的div,并将其显示在我的页面上。有什么想法吗?使用用户控件不是个坏主意,但是使用ListView可能会更好/更容易 但假设您现在仍然使用div和用户控件。首先,您创建用户控件的方式与创建其他控件的方式不同,因为您已经完成了页面生命周期的一部分,需要跟上它们。而是使用LoadControl(请参阅:)
其次,不要将值传递给构造函数。在usercontrol中创建一个名为LoadData的函数,并将值传递给该函数。使用LoadControl创建usercontrol后,调用LoadData并传入值。LoadData负责将数据加载到各种控件中,与您的示例不同,这些控件可能已经存在于您的usercontrol中。请尝试InnerText以查看其是否有效。对您的代码有很多问题:什么是
占位符1
,搜索结果
?您在哪里实施控制?为什么不使用ListView呢?太好了,我会试试的!谢谢,太棒了。成功了!非常感谢您的详细帮助。我真的很感激。