【问题标题】:Selection of "DYNAMIC" dropdownlist items from a Table从表中选择“动态”下拉列表项
【发布时间】:2011-06-08 05:04:23
【问题描述】:

//代码隐藏文件

public void Button1_Click(object sender, EventArgs e)
 {
             while (reader.Read())
         {

            DropDownList ddl = new DropDownList();
             string[] s = { "Present", "Absent1", "Absent2", "Absent3" };
             for (int i = 0; i < 3; i++)
             {
                 ddl.Items.Add(s[i]);
             }
             ddl.ID = "ddl";
             TableCell c2 = new TableCell();
             c2.Controls.Add(ddl);
             r.Cells.Add(c2);
             Table1.Rows.Add(r);
            }
 }

 public void Button2_Click1(object sender, EventArgs e)

 {

         foreach (TableRow tr in Table1.Controls)
         {
             foreach (TableCell tc in tr.Controls)
             {
                 if (tc.Controls[2] is DropDownList)
                {
                 Response.Write(((DropDownList)tc.Controls[2]).SelectedItem.Text+" ");
                }
             }
             Response.Write("<br/>");
         }

问题在于下拉列表项目的选择。我无法打印相应的选定项目值。有人可以帮忙吗?

【问题讨论】:

  • 发生了什么?您是否遇到异常或找不到下拉列表或您的下拉列表为空?

标签: c# asp.net drop-down-menu tablecell


【解决方案1】:

在最后一个嵌套的 foreach 中检查 tc.Controls[2]。您的下拉列表是否可能不是第三个控件?

我看不出有任何理由迫使它成为该单元格中的第三个控件。

你可能会更好地做这样的事情:

if(tc.FindControl("ddl") != null)
{
   Response.Write(((DropDownList)tc.FindControl("ddl")).SelectedItem.Text+" ");
}

代替:

 if (tc.Controls[2] is DropDownList)
 {
    Response.Write(((DropDownList)tc.Controls[0]).SelectedItem.Text+" ");
 }

【讨论】:

  • 我编辑了控制部分。但问题不在于我猜的。我仍然面临同样的问题。
  • 仍然没有打印选定的值。虽然我尝试了你的代码。
  • 它甚至可以达到那个 if 语句吗?
  • 它没有给出任何错误。但只是在按钮2点击后没有给出任何结果。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-19
  • 2012-01-11
  • 2016-10-28
  • 2015-09-07
相关资源
最近更新 更多