#asp.net #html-table #row #findcontrol
#asp.net #html-таблица #строка #findcontrol
Вопрос:
У меня есть таблица. Мне нужно найти все элементы управления DropDownList в таблице. Я написал следующий код для перебора строк таблицы, чтобы найти элементы управления выпадающего списка. Как получилось, что в каждом цикле я мог найти выпадающий список, даже если у меня есть только в строке 4?
for (int i = 0; i < table1.Rows.Count; i )
{
foreach (string UserID in UserIDs)
{
string ddlID = "ddlEditings" UserID;
DropDownList ddl = (DropDownList)table1.Rows[i].FindControl(ddlID);
if (ddl != null)
{
if (!updateableUsers.ContainsKey(Int32.Parse(UserID)))
updateableUsers.Add(Int32.Parse(UserID), Int32.Parse(ddl.SelectedValue));
}
}
}
Разметка
<table id="ctl00_ContentPlaceHolder1_table1" border="1" width="100%">
<tr>
<td align="center" width="100%" colspan="3" bgcolor="#C0C0C0"><br /></td>
</tr>
<tr>
<td align="center" width="7%" bgcolor="#C0C0C0"></td>
<td align="center" width="50%" bgcolor="#CCE6FF">User Name</td>
<td align="center" width="43%" bgcolor="#CCE6FF">Editing Privileges</td>
</tr>
<tr>
<td align="center" width="7%" bgcolor="#C0C0C0"></td>
<td width="50%" bgcolor="#CCE6FF">Ferguson, Gene</td>
<td align="left" width="43%" bgcolor="#CCE6FF">functional manager</td>
</tr>
<tr>
<td align="center" width="7%" bgcolor="#C0C0C0"><input type="submit" name="ctl00$ContentPlaceHolder1$btnDelete5439" value="Delete" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(amp;quot;ctl00$ContentPlaceHolder1$btnDelete5439amp;quot;, amp;quot;amp;quot;, true, amp;quot;amp;quot;, amp;quot;amp;quot;, false, false))" id="ctl00_ContentPlaceHolder1_btnDelete5439" /></td>
<td width="50%" bgcolor="#CCE6FF">Lento, Jackie</td>
<td align="left" width="43%" bgcolor="#CCE6FF"><select name="ctl00$ContentPlaceHolder1$ddlEditings5439" id="ctl00_ContentPlaceHolder1_ddlEditings5439">
<option selected="selected" value="2">comments only</option>
<option value="1">view</option>
</select></td>
</tr>
<tr bgcolor="#C0C0C0">
<td width="100%" align="center" colspan="3"><input type="submit" name="ctl00$ContentPlaceHolder1$btnSubmit" value="Update" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(amp;quot;ctl00$ContentPlaceHolder1$btnSubmitamp;quot;, amp;quot;amp;quot;, true, amp;quot;amp;quot;, amp;quot;amp;quot;, false, false))" id="ctl00_ContentPlaceHolder1_btnSubmit" /><input type="submit" name="ctl00$ContentPlaceHolder1$btnReset" value="Reset" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(amp;quot;ctl00$ContentPlaceHolder1$btnResetamp;quot;, amp;quot;amp;quot;, true, amp;quot;amp;quot;, amp;quot;amp;quot;, false, false))" id="ctl00_ContentPlaceHolder1_btnReset" /><br /></td>
</tr>
</table>
Комментарии:
1. Можете ли вы включить разметку для своей таблицы (не вывод)?
2. Кстати, эта таблица создается динамически.
3. Если он динамический, включите код, который генерирует таблицу.
Ответ №1:
вы можете сделать так… чтобы найти все элементы управления в таблице html….
foreach(HtmlTableRow tr in Table1.Rows)
{
foreach(HtmlTableCell td in tr.Cells)
{
foreach(Control c in td.Controls)
{
Response.Write(c.ID);
}
}
}