ASP.NET のグリッドビューで EditTemplate コントロールのコントロール タイプを取得するにはどうすればよいでしょうか?
バインドされたコントロールのタイプを取得するには、これを行うだけです
foreach (TableCell cell in grdViewDetails.Rows[e.RowIndex].Cells)
{
//set the employeeid so you can update the dataset
if (cell.Controls[0] is CheckBox)
{
CheckBox check = (CheckBox)cell.Controls[0];
//Do stuff with the control and the text inside the control etc;
}
}
しかし、テンプレートにコントロールが見つからないようです。彼らはこれをスキップするだけです。
私が無駄にしようとしたこと。
foreach (TableCell cell in grdViewDetails.Rows[e.RowIndex].Cells)
{
var test1 = cell.Controls[0];
columnName = dsOriginal.Tables[0].Columns[startOfColumns].ColumnName; //[System.Web.UI.LiteralControl] I can find the Column Name but it't not a normal control... It's a LiteralControl?
var test2 = cell.FindControl("CheckWeek2"); //[System.Web.UI.WebControls.Calendar] = {SelectedDate = The name 'SelectedData' does not exist in the current context}
}
マイ Gridview コントロール テンプレート
<asp:TemplateField HeaderText="week2" SortExpression="week2">
<EditItemTemplate>
<asp:CheckBox ID="CheckWeek2" runat="server" Checked='<%# Bind("week2") %>'></asp:CheckBox>
</EditItemTemplate>
<ItemTemplate>
<asp:CheckBox ID="Label2" runat="server" Enabled="false" Checked='<%# Bind("week2") %>'></asp:CheckBox>
</ItemTemplate>
</asp:TemplateField>