|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
有时也搞不懂应该学那种;主要看你以后去的那个公司是使用哪种了。就像王千祥的课上说的:企业应用现在主要就三层(其实也差不多就是MVC):表示层(主要使用html写的,很简单)、业务逻辑层(主要就是应用服务器的)。最后就是数据层(其实就是学习数据库) 静态增加列,关头是完成ITemplate.InstantiateIn办法。上面是一个增加GridView模板列的例子。
C#代码
<%...@PageLanguage="C#"%>
<%...@ImportNamespace="System.Data"%>
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<scriptrunat="server">...
ICollectionCreateDataSource()
...{
DataTabledt=newDataTable();
DataRowdr;
dt.Columns.Add(newDataColumn("id",typeof(Int32)));
dt.Columns.Add(newDataColumn("text",typeof(string)));
for(inti=0;i<6;i++)
...{
dr=dt.NewRow();
dr[0]=i;
dr[1]="列表项目"+i.ToString();
dt.Rows.Add(dr);
}
DataViewdv=newDataView(dt);
returndv;
}
publicclassGridViewTemplate:ITemplate
...{
privateDataControlRowTypetemplateType;
privatestringcolumnName;
publicGridViewTemplate(DataControlRowTypetype,stringcolname)
...{
templateType=type;
columnName=colname;
}
publicvoidInstantiateIn(System.Web.UI.Controlcontainer)
...{
switch(templateType)
...{
caseDataControlRowType.Header:
Literallc=newLiteral();
lc.Text=columnName;
container.Controls.Add(lc);
break;
caseDataControlRowType.DataRow:
DropDownListdrr=newDropDownList();
drr.ID="dropdown";
drr.AppendDataBoundItems=true;
drr.Items.Add(newListItem("-----请选择------",""));
drr.Items.Add(newListItem("AA","a"));
drr.Items.Add(newListItem("BB","b"));
drr.Items.Add(newListItem("CC","c"));
container.Controls.Add(drr);
break;
default:
break;
}
}
}
protectedvoidPage_Load(objectsender,EventArgse)
...{
if(!IsPostBack)
...{
TemplateFieldcustomField=newTemplateField();
customField.ShowHeader=true;
customField.HeaderTemplate=newGridViewTemplate(DataControlRowType.Header,"静态增加列");
customField.ItemTemplate=newGridViewTemplate(DataControlRowType.DataRow,"");
GridView1.Columns.Add(customField);
GridView1.DataSource=CreateDataSource();
GridView1.DataBind();
}
}
protectedvoidGridView1_RowDataBound(objectsender,GridViewRowEventArgse)
...{
if(e.Row.RowType==DataControlRowType.DataRow)
...{
//能够在这里会见数据库的别的字段的值,能够设置默许选择项,详细使用,看本人的发扬了。
//上面只是例子,触类旁通,不再费话了
DataRowViewgv=(DataRowView)e.Row.DataItem;
intitemSeleted=Int32.Parse(gv.Row["id"].ToString())>3?0:Int32.Parse(gv.Row["id"].ToString());
DropDownListdr=(DropDownList)e.Row.FindControl("dropdown");
dr.SelectedIndex=itemSeleted;
}
}
</script>
<htmlxmlns="http://www.w3.org/1999/xhtml">
<headid="Head1"runat="server">
<title>GridView静态增加模板列的例子</title>
</head>
<body>
<formid="form1"runat="server">
<asp:GridViewID="GridView1"runat="server"AutoGenerateColumns="False"
OnRowDataBound="GridView1_RowDataBound">
<Columns>
<asp:BoundFieldHeaderText="题目"DataField="text"/>
</Columns>
</asp:GridView>
</form>
</body>
</html>
感觉很多控件都必须自己去写代码;用了WebMatrix感觉也不是很好,毕竟没有很强的WYSIWYG效果。现在就不知道如何是好了。 |
|