C# 如何基于列表将多个进度div添加到div<;T>;对象项
我正在用ASP.NET Webforms和C#做一个轮询web应用程序。根据存储在对象中的答案数量,我希望以C#的格式在页面上的div预设中显示相同数量的进度divC# 如何基于列表将多个进度div添加到div<;T>;对象项,c#,html,asp.net,webforms,C#,Html,Asp.net,Webforms,我正在用ASP.NET Webforms和C#做一个轮询web应用程序。根据存储在对象中的答案数量,我希望以C#的格式在页面上的div预设中显示相同数量的进度div 瓦尔 我尝试了下面的方法,但我看到的只是一个div,而不是与对象中的答案数相同的div数。这就是我所做的: for (int i = 0; i < lstValues.Count; i++) { var answer = UtilityClass.Utility.SubstringElement(lstValues
瓦尔
我尝试了下面的方法,但我看到的只是一个div,而不是与对象中的答案数相同的div数。这就是我所做的:
for (int i = 0; i < lstValues.Count; i++)
{
var answer = UtilityClass.Utility.SubstringElement(lstValues[i]);
if (answer.Trim() == new PollAnswersService().GetByPollAnswerId(userResp.PollAnswerId).PollAnswerText)
{
ListItem valItem = new ListItem(lstValues[i], lstValues[i]);
var divResults = ((HtmlGenericControl)e.Item.FindControl("divResults"));
divResults.Controls.Add(new LiteralControl("<br />"));
string percentage = lstValues[i].Substring(lstValues[i].IndexOf("-") + 1);
var percentVal = percentage.Remove(percentage.Length - 1).Trim();
RadioButton rb = new RadioButton();
rb.Text = lstValues[i];
rb.Checked = true;
rb.Enabled = false;
divResults.Controls.Add(rb);
Panel pnlProgress = new Panel();
pnlProgress.Attributes["class"] = "progress-bar progress-bar-info";
pnlProgress.Attributes["role"] = "progressbar";
pnlProgress.Attributes["aria-valuenow"] = percentVal;
pnlProgress.Attributes["aria-valuemin"] = "0";
pnlProgress.Attributes["aria-valuemax"] = "100";
pnlProgress.Style["width"] = string.Format("{0}%;", percentVal);
pnlProgress.Controls.Add(new LiteralControl(string.Format("{0}%;", percentVal)));
divResults.Controls.Add(pnlProgress);
}
else
{
ListItem valItem = new ListItem(lstValues[i], lstValues[i]);
((RadioButtonList)e.Item.FindControl("rblPollResult")).Items.Add(valItem);
var divResults = ((HtmlGenericControl)e.Item.FindControl("divResults"));
divResults.Controls.Add(new LiteralControl("<br />"));
string percentage = lstValues[i].Substring(lstValues[i].IndexOf("-") + 1);
var percentVal = percentage.Remove(percentage.Length - 1).Trim();
RadioButton rb = new RadioButton();
rb.Text = lstValues[i];
rb.Checked = true;
rb.Enabled = false;
//divResults.Controls.Add(rb);
Panel pnlProgress = new Panel();
pnlProgress.Attributes["class"] = "progress-bar progress-bar-info";
pnlProgress.Attributes["role"] = "progressbar";
pnlProgress.Attributes["aria-valuenow"] = percentVal;
pnlProgress.Attributes["aria-valuemin"] = "0";
pnlProgress.Attributes["aria-valuemax"] = "100";
pnlProgress.Style["width"] = string.Format("{0}%;", percentVal);
pnlProgress.Controls.Add(new LiteralControl(string.Format("{0}%;", percentVal)));
divResults.Controls.Add(pnlProgress);
}
}
for(int i=0;i ”);
字符串百分比=lstValues[i]。子字符串(lstValues[i]。IndexOf(“-”)+1);
var percentVal=percentage.Remove(percentage.Length-1.Trim();
RadioButton rb=新RadioButton();
rb.Text=lstValues[i];
rb.Checked=true;
rb.Enabled=false;
divResults.Controls.Add(rb);
面板pnlProgress=新面板();
pnlProgress.Attributes[“class”]=“进度条进度条信息”;
pnlProgress.Attributes[“role”]=“progressbar”;
pnlProgress.Attributes[“aria valuenow”]=percentVal;
pnlProgress.Attributes[“aria valuemin”]=“0”;
pnlProgress.Attributes[“aria valuemax”]=“100”;
pnlProgress.Style[“width”]=string.Format(“{0}%;”,percentVal);
添加(新的LiteralControl(string.Format(“{0}%;”,percentVal));
divResults.Controls.Add(pnlProgress);
}
其他的
{
ListItem valItem=新的ListItem(lstValues[i],lstValues[i]);
((RadioButtonList)e.Item.FindControl(“rblPollResult”)).Items.Add(valItem);
var divResults=((HtmlGenericControl)e.Item.FindControl(“divResults”);
divResults.Controls.Add(新的LiteralControl(“
”);
字符串百分比=lstValues[i]。子字符串(lstValues[i]。IndexOf(“-”)+1);
var percentVal=percentage.Remove(percentage.Length-1.Trim();
RadioButton rb=新RadioButton();
rb.Text=lstValues[i];
rb.Checked=true;
rb.Enabled=false;
//divResults.Controls.Add(rb);
面板pnlProgress=新面板();
pnlProgress.Attributes[“class”]=“进度条进度条信息”;
pnlProgress.Attributes[“role”]=“progressbar”;
pnlProgress.Attributes[“aria valuenow”]=percentVal;
pnlProgress.Attributes[“aria valuemin”]=“0”;
pnlProgress.Attributes[“aria valuemax”]=“100”;
pnlProgress.Style[“width”]=string.Format(“{0}%;”,percentVal);
添加(新的LiteralControl(string.Format(“{0}%;”,percentVal));
divResults.Controls.Add(pnlProgress);
}
}
我认为答案很简单,在循环之外声明这个变量:-
var divResults = ((HtmlGenericControl)e.Item.FindControl("divResults"));
for (int i = 0; i < lstValues.Count; i++){
// Your Code Here
}
var divResults=((HtmlGenericControl)e.Item.FindControl(“divResults”);
for(int i=0;i
我认为这是迭代中最后一个在过程结束时添加到HTML中的项目,对吗?@Derek我相信是这样。这是可能的。但我不知道为什么,因为它在循环中。您需要调试代码,并检查divResults控件在循环的最后一次迭代中拥有的子控件的数量。对于类似的内容,我希望您使用asp ListView控件。@Derek它只显示一个控件。这意味着随着循环的进行,子控件将被替换。你有没有更好的方法来做这件事,因为我相信你明白我想要实现什么。谢谢
var divResults = ((HtmlGenericControl)e.Item.FindControl("divResults"));
for (int i = 0; i < lstValues.Count; i++){
// Your Code Here
}