データを動的にバインドするグリッドビューがあります。SELECT および EDIT コマンドを備えています。
編集モードでは、すべてのフィールドが編集可能なテキストボックスに変わります。
私がやりたいことは、Ajax Calendar Extender をテキストボックスの 1 つに追加することです。
1 つのフィールドのためだけに TemplateField を作成するにはどうすればよいですか? それは可能ですか?すべてのフィールドをバインドし、SqlDataSource を介してデータを割り当てる場合、その方法を知っています。
テンプレートフィールドをグリッドビューに追加しようとしましたが、データが表示されません:
<asp:GridView ID="gvCheckResults" runat="server" OnRowDataBound="gvCheckResults_RowDataBound"
OnRowEditing="gvCheckResults_RowEditing" OnRowUpdating="gvCheckResults_RowUpdating" OnRowCancelingEdit="gvCheckResults_RowCancelingEdit"
OnRowDeleting="gvCheckResults_RowDeleting">
<Columns>
<asp:TemplateField HeaderText="DateOfTest" SortExpression="DateOfTest">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("DateOfTest") %>'></asp:TextBox>
<ajaxToolkit:CalendarExtender ID="test" runat="server"
TargetControlID="TextBox1"
CssClass="calendar"
Format="dd/MM/yyyy">
</ajaxToolkit:CalendarExtender>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("DateOfTest") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
データのバインド方法:
protected void TestDataBind()
{
string Name = txtCheckName.Text;
if (string.IsNullOrEmpty(Name))
Name = null;
gvCheckResults.DataSource = dataContext.GetRecords(Name);
gvCheckResults.DataBind();
}