看着本来就能够解决的问题,做到后来确是一踏糊涂.头大了,心碎了,我累了,兄弟姐妹们,帮帮我吧!请看以下代码: private void CreateDataGrid(string tableName,string course,string group,string groupValue) { //创建DataGrid string temp; //数据分组方式 if(group=="班号") temp="SubString(学号,4,2)"; else temp="考室"; AdvancedDataOP dataOP=new AdvancedDataOP("Student");//此乃一个封装了数据库相关操作的类,构造时将其连接到SQL Server中的Student库
//根据指定的科目得到相应的列 if(course=="语文") { if(groupValue=="全部") ds=dataOP.GetDataSet(tableName+" ORDER BY "+temp,"考号,姓名,语卷"); else ds=dataOP.GetDataSet(tableName,"考号,姓名,语卷",temp+"='"+groupValue+"' ORDER BY "+temp); //以上得到数据集
//下开始定义DataGrid列 BoundColumn col=new BoundColumn(); col.HeaderText="考号"; col.DataField="考号"; dgInput.Columns.Add(col);
col=new BoundColumn(); col.HeaderText="姓名"; col.DataField="姓名"; dgInput.Columns.Add(col);
TemplateColumn tCol=new TemplateColumn(); tCol.HeaderText="语卷"; tCol.EditItemTemplate=new TemplateItem("语卷"); dgInput.Columns.Add(tCol);
dgInput.DataSource=ds; dgInput.DataMember=tableName; dgInput.DataBind(); } } }
class TemplateItem:System.Web.UI.ITemplate { string columnName; public TemplateItem(string colnamer) { columnName = colnamer; }
public void InstantiateIn(System.Web.UI.Control container) { TextBox txtScore=new TextBox(); txtScore.Text=null; container.Controls.Add(txtScore); }
程序运行后在给定相关参数后能动态显示出列,前两个BoundColumn的值也完全正常.我的目的是要在后一列(即语卷)列实现数据录入,可是,问题出来了:TextBox好像并没有绑定到DataGrid模板列中,根本就没有数据输入焦点,这叫我怎么输入数据呢?!请问这究竟是哪儿出了问题?!该怎么解决叱?!请指教.谢谢!!!