Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何基于列表将多个进度div添加到div<;T>;对象项_C#_Html_Asp.net_Webforms - Fatal编程技术网

C# 如何基于列表将多个进度div添加到div<;T>;对象项

C# 如何基于列表将多个进度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

我正在用ASP.NET Webforms和C#做一个轮询web应用程序。根据存储在对象中的答案数量,我希望以C#的格式在页面上的div预设中显示相同数量的进度div


瓦尔
我尝试了下面的方法,但我看到的只是一个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

}