添加的GridView鉴于这样定义GridView控件:问题以编程的行具有预先定义的列
<asp:GridView
ID="AttachedFilesGridView"
runat="server"
AllowSorting="true"
AllowPaging="false"
CellPadding="5"
AutoGenerateColumns="false"
CssClass="wsajax_DlgCodeBox">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="CheckSelect" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField Datafield="FilePath" HeaderText="File Path" SortExpression="FilePath" />
<asp:BoundField Datafield="AttachmentID" HeaderText="Attachment ID" />
</Columns>
</asp:GridView>
我试图生成使用此代码在C#在服务器侧的网格视图中的行:
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("CheckSelect", typeof(CheckBox))); // <<<--- ?????
dt.Columns.Add(new DataColumn("FilePath", typeof(string)));
dt.Columns.Add(new DataColumn("AttachmentID", typeof(string)));
string errMsg = String.Empty;
char[] delimiters = { ',' };
string[] pendingsIDs = PendingFileAttachments.Value.Split(delimiters, StringSplitOptions.RemoveEmptyEntries);
foreach (string adapterID in pendingsIDs)
{
FileAdapter adapter = FileAdapter.LoadFileAdapter(profile, new Guid(adapterID), ref errMsg);
if (adapter != null)
{
DataRow dr = dt.NewRow();
CheckBox cb = new CheckBox();
cb.Checked = FileAdapter.IsReserved;
cb.ID = "CheckSelect";
dr["CheckSelect"] = cb; <<<---?????
dr["FilePath"] = adapter.GetPartialFilePath();
dr["AttachmentID"] = adapter.ObjectID.ToString("N");
dt.Rows.Add(dr);
}
}
AttachedFilesGridView.DataSource = dt;
AttachedFilesGridView.DataBind();
问题是这样的:
的“文件路径”和“附件ID”被在网格正确设置字段,然而,复选框控件从不正确设置;它总是没有检查。
我的问题:
我如何获得这个复选框字段,因为我创造了新行从C#设置?
P.S.我不知道我是否正确创建行。
谢谢。 Eval宏做了诡计! – Escovado 2011-02-23 00:16:14