在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
asp.net中GridView绑定到数据源时,可以自动显示数据源的各个字段。只要设定其AutoGenerateColumns为TRUE即可。但这,自动显示有其不好的一面,因为不能自义定控制显示的样式。 1. DataControlField DataControlField 类用作所有数据控件字段类型的基类。数据绑定控件使用数据控件字段表示数据字段。 2. 使用BoundField GridView在显示状态,BoundField总是直接把数据项显示为文本;在编辑状态,BoundFiled将数据项显示为一个单行的文本框
<asp:GridView id=”grdMovies” DataSourceID=”srcMovies” AutoGenerateColumns=”false” Runat=”server”> <Columns> <asp:BoundField DataField=”Title” HeaderText=”Movie Title” /> <asp:BoundField DataField=”Director” HeaderText=”Movie Director” /> <asp:BoundField DataField=”BoxOfficeTotals” DataFormatString=”{0:c}” HtmlEncode=”false” HeaderText=”Box Office Totals” /> </Columns> </asp:GridView>
3. CheckBoxField CheckBoxField会在相应的列内显示一个复选框,在没有进入编辑模式时,其复杂框处于禁用状态。 4. CommandField 使用CommandField可以定制GridView控件中Edit、Delete、Update、Cancel、Select等按钮的外观。 5. ButtonField 使用ButtonField可以在GridView中显示一个按钮,使用它可以完成自定义或标准的编辑命令 <asp:GridView id=”grdMovieCategories” DataSourceID=”srcMovieCategories” DataKeyNames=”Id,Position” AutoGenerateColumns=”false” OnRowCommand=”grdMovieCategories_RowCommand” Runat=”server”> <Columns> <asp:ButtonField Text=”Move Up” CommandName=”Up” /> <asp:ButtonField Text=”Move Down” CommandName=”Down” /> <asp:BoundField DataField=”Position” HeaderText=”Position” /> <asp:BoundField DataField=”Name” HeaderText=”Category Name” /> </Columns> </asp:GridView> <asp:SqlDataSource id=”srcMovieCategories” ConnectionString=”<%$ ConnectionStrings:Movies %>” SelectCommand=”SELECT Id, Name, Position FROM MovieCategories ORDER BY Position” UpdateCommand=”UPDATE MovieCategories SET Position=@Position WHERE Id=@Id” Runat=”server”> <UpdateParameters> <asp:Parameter Name=”Id” /> <asp:Parameter Name=”Position” /> </UpdateParameters> </asp:SqlDataSource>
6. 使用HyperLinkField HyperLinkField用来链接到其他页面。当创建两具主从表单的时候,HyperLinkField非常有用。
<asp:DetailsView id=”dtlMovie” DataSourceID=”srcMovieDetails” Runat=”server” /> <asp:SqlDataSource id=”srcMovieDetails” ConnectionString=”<%$ ConnectionStrings:Movies %>” SelectCommand=”SELECT Title, Director, InTheaters FROM Movies WHERE Id=@MovieId” Runat=”server”> <SelectParameters> <asp:QueryStringParameter Name=”MovieId” QueryStringField=”id” /> </SelectParameters> </asp:SqlDataSource>
7. 使用ImageField ImageFIeld用来显示保存在服务器上的图片,不能用ImageField来显示保存在数据库上的图片。 <script runat=”server”> protected void frmPhoto_ItemInserting(object sender, FormViewInsertEventArgs e) { // Get the FileUpload control FileUpload upPhoto = (FileUpload)frmPhoto.FindControl(“upPhoto”); srcImages.InsertParameters[“FileName”].DefaultValue = upPhoto.FileName; string savePath = MapPath(“~/Photos/” + upPhoto.FileName); // Save contents to file system upPhoto.SaveAs(savePath); } </script> <asp:GridView id=”grdImages” DataSourceID=”srcImages” AutoGenerateColumns=”false” ShowHeader=”false” Runat=”server”> <Columns> <asp:ImageField DataImageUrlField=”FileName” DataAlternateTextField=”AltText” DataImageUrlFormatString=”~/Photos/{0}” ControlStyle-Width=”200px” /> </Columns> </asp:GridView> <asp:SqlDataSource id=”srcImages” ConnectionString=”<%$ ConnectionStrings:Photos %>” SelectCommand=”SELECT FileName, AltText FROM Photos” InsertCommand=”INSERT Photos (FileName, AltText) VALUES (@FileName, @AltText)” Runat=”server”> <InsertParameters> <asp:Parameter Name=”FileName” /> </InsertParameters> </asp:SqlDataSource> <asp:FormView id=”frmPhoto” DefaultMode=”Insert” DataSourceID=”srcImages” OnItemInserting=”frmPhoto_ItemInserting” Runat=”server”> <InsertItemTemplate> <asp:FileUpload id=”upPhoto” Runat=”server” /> <asp:TextBox id=”txtAltText” Text=’<%# Bind(“AltText”) %>’ Columns=”50” Runat=”server” /> <asp:Button id=”btnInsert” Text=”Add New Photo” CommandName=”Insert” Runat=”server” /> </InsertItemTemplate> </asp:FormView>
8.使用TemplateField
<asp:GridView id=”grdMovies” DataSourceID=”srcMovies” DataKeyNames=”Id” AutoGenerateColumns=”false” AutoGenerateEditButton=”true” Runat=”server”> <Columns> <asp:TemplateField HeaderText=”Title”> <!-- Title 列--> <ItemTemplate> <%# Eval(“Title”) %> </ItemTemplate> <!-- 注意,是用Eval绑定字绑,而没有BoundField属性了 --> <EditItemTemplate> <!-- 编辑时显示的模板 --> <asp:TextBox id=”txtTitle” Text='<%# Bind(“Title”) %>' Runat=”server” /> <!-- 使用Bind,双向绑定 --> <-- 编辑时对txtTitle进行验证 --> <asp:RequiredFieldValidator id=”valTitle” ControlToValidate=”txtTitle” Text=”(required)” Runat=”server” /> </EditItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText=”Category”> <!-- Category列 --> <ItemTemplate> <%# Eval(“Name”) %> </ItemTemplate> <EditItemTemplate> <asp:DropDownList id=”ddlCategory” DataSourceID=”srcMovieCategories” DataTextField=”Name” DataValueField=”Id” SelectedValue='<%# Bind(“CategoryId”) %>' Runat=”server” /> </EditItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> |
请发表评论