.NET4.0 使用GridView控件

合集下载

.NET4.0 通过代码添加控件

.NET4.0  通过代码添加控件

4.0 通过代码添加控件
GridView类是所有GridView控件的抽象,其可以用于创建GridView控件,也可以通过该类的字段和属性对GridView控件进行预定义,或通过该类的方法对控件进行操作。

之前介绍的使用代码创建GridView控件,事实上就是实例化了一个GridView类的对象。

1.在窗体页中添加代码
先在窗体中,添加GridView控件。

然后,在控件中,添加数据表字段内容。


2.构造GridView对象
双击Default.aspx.cs文件,并在代码中构造一个GridView控件对象,使用
3.添加GridView事件
用户除了在代码文件中,添加GridView控件对象以外,还可以添加一些对数据进行的操作事件。

例如,编辑数据、删除数据、选择数据记录等,正如在Default.aspx 窗体页中所添加的一些操作内容。

下面来看一下,Default.aspx.cs代码文件中,所有代码内容,并了解窗体页与代
通过GridView控件添加数据内容,可以在窗体页中显示数据表内容。

并且,用户还可以操作窗体页中的表格内容,以达到修改数据库中数据信息。

例如,单击工具栏中的【启动调试】按钮,即可在IE浏览器中显示数据库中数据表的数据信息,如图10-17所示。

图10-17 显示数据表内容
然后,用户可以单击第一条记录后面的【删除】链接,并弹出的“确定要删除吗?”信息,并单击【确定】按钮。

删除成功后,将提示“删除成功!”信息,否则提示“删除失败!”信息,如图10-18所示。

图10-18 删除记录。

gridview控件用法介绍

gridview控件用法介绍

ASPxGridView属性:概述设置(Settings)<SettingsGridLines="Vertical" : 网格样式 Vertical, Both, NoneShowGroupPanel="True" : 分组面板ShowFooter="True" : 脚注面板ShowFilterRow="True" : 过滤器行ShowHeaderFilterButton="true" : 表头过滤按钮ShowFilterBar :允许显示过滤工具条ShowGroupFooter="VisibleAlways" : 分组脚注面板 Hidden | VisibleIfExpand | Vis ibleAlwaysShowPreview="true" : 预览面板ShowVerticalScrollBar="True" : 垂直滚动条VerticalScrollableHeight="250" : 垂直滚动条/>行为设置(SettingsBehavior)<SettingsBehaviorAllowDragDrop="False" : 允许托拽ColumnResizeMode="Control" : 列宽度调整模式AllowFocusedRow="True" : 鼠标点击选择行AllowSort :允许排序AllowGroup :允许分组autoExpandAllGroups :自动展开所有组ConfirmDelete :允许提交删除AllowMultiSelection :允许选择多行/>分页(SettingsPager)<SettingsPagerPageSize="30" : 分页大小Mode="ShowAllRecords" : 展示模式SEOFriendly="Enabled" : Search engine friendlyPosition="TopAndBottom" : 分页控件位置><Summary AllPagesText="页: {0} / {1} ({2}行)" /></SettingsPager>文本设置(SettingsText)<SettingsTextTitle="标题"EmptyDataRow="无数据"PopupEditFormCaption="编辑"ConfirmDelete="确定删除?"/>Loading 面板设置(SettingsLoadingPanel)<SettingsLoadingPanel Mode="ShowOnStatusBar" />编辑视图设置(SettingsEditing)<SettingsEditingPopupEditFormWidth = "600px"NewItemRowPosition = "Bottom"Mode = "PopupEditForm"/>编辑模式 SettingsEditing.ModeEditForm : 当前行转化为表单,嵌入在行中EditFormAndDisplayRow : 同EditForm,但保留当前行Inline : 在当前行现场编辑PopupEditForm : 弹出窗口编辑行详细设置(SettingDetail)<SettingDetailAllowOnlyOneMasterRowExpanded :允许只展开一列详细信息ShowDetailRow :允许显示详细列表IsDetailGrid :允许显示分组>动态选中某一行:AspxgridView1.Selection.SetSelection(i.true)遍历所有行:声明变量:DataRowView dvFor(int i=0;i< AspxgridView1.VisbleRowCount;i++){选中行提取数据:if(AspxgridView1.Selection.IsRowSelected(i)){行数据集 dv=(DataRowView)AspxgridView1.GetRow(i);}}ASPxGridView样式& 格式---------------------------------------------------------集中式样式<Styles><Header HorizontalAlign="Center" /> : 标题居中对齐<AlternatingRow Enabled="true"/> : 交错行效果<CommandColumn Paddings-Padding="1" /> :</Styles>列样式<dxwgv:GridViewDataTextColumn FieldName="Total" UnboundType="Decimal"> <FooterCellStyle ForeColor="Brown"/></dxwgv:GridViewDataTextColumn>数字日期格式金额<dxwgv:GridViewDataTextColumn FieldName="UnitPrice" ><PropertiesTextEdit DisplayFormatString="c" /></dxwgv:GridViewDataTextColumn>时间<dxwgv:GridViewDataDateColumn Caption="Time" FieldName="Time"> <PropertiesDateEdit DisplayFormatString="HH:mm:ss" /><CellStyle HorizontalAlign="Right" /></dxwgv:GridViewDataDateColumn>图像<Images ImageFolder="~/App_Themes/Glass/{0}/"><CollapsedButton Height="12px" Width="11px" /><DetailCollapsedButton Height="9px" Width="9px" /><PopupEditFormWindowClose Height="17px" Width="17px" /></Images>ASPxGridView分组& 汇总& 排序---------------------------------------------------------间隔分组:将时间日期字段按个性分组,如年、月、日、周、季度、上周、下周.....<dxwgv:GridViewDataDateColumn FieldName="OrderDate" VisibleIndex="3" GroupInd ex="0"><Settings GroupInterval="DateYear"/></dxwgv:GridViewDataDateColumn>汇总<TotalSummary><dxwgv:ASPxSummaryItem FieldName="CompanyName" SummaryType="Count"/> <dxwgv:ASPxSummaryItem FieldName="Total" SummaryType="Sum" DisplayFormat="c"/><dxwgv:ASPxSummaryItem FieldName="Quantity" SummaryType="Min" /><dxwgv:ASPxSummaryItem FieldName="Quantity" SummaryType="Average" /><dxwgv:ASPxSummaryItem FieldName="Quantity" SummaryType="Max" /> </TotalSummary>分组汇总<GroupSummary><dxwgv:ASPxSummaryItem FieldName="Country" SummaryType="Count" /><dxwgv:ASPxSummaryItem FieldName="Quantity" SummaryType="Sum" /><dxwgv:ASPxSummaryItem FieldName="Total" SummaryType="Sum" DisplayFor mat="{0:c}"/></GroupSummary>ASPxGridView 列:---------------------------------------------------------基本列(GridViewDataColumn)<dxwgv:GridViewDataColumn FieldName="Country" VisibleIndex="5" />其他列<dx:GridViewDataTextColumn /> : 文本列<dx:GridViewDataMemoColumn /> : 长文本列<dx:GridViewDataImageColumn /> : 图像列<dx:GridViewDataBinaryImageColumn /> : 二进制图像列<dx:GridViewDataDateColumn /> : 日期列<dx:GridViewDataTimeEditColumn /> : 时间列<dx:GridViewDataComboBoxColumn /> : 组合框列<dx:GridViewDataDropDownEditColumn /> : 下拉框编辑列?<dx:GridViewCommandColumn /> : 命令按钮列<dx:GridViewDataButtonEditColumn /> : 编辑按钮列?<dx:GridViewDataCheckColumn /> : 复选框列<dx:GridViewDataColorEditColumn /> : 色彩列<dx:GridViewDataHyperLinkColumn /> : 超链接列<dx:GridViewDataProgressBarColumn /> : 进度条列<dx:GridViewDataSpinEditColumn /> : SpinEdit列长文本列(GridViewDataMemoColumn)编辑时展现为多行文本框<dx:GridViewDataMemoColumn FieldName="Remarks" Caption="备注"EditCellStyle-BackColor="Yellow" // 行的背景颜色PropertiesMemoEdit-Rows="4" // 添加或是修改时跨行EditFormSettings-ColumnSpan="2" //添加或是修改时跨列/>超链接列(GridViewDataHyperLinkColumn)<dx:GridViewDataHyperLinkColumn FieldName="ArticleId" Caption="查看" > <PropertiesHyperLinkEdit Text="查看" TextFormatString="" /> </dx:GridViewDataHyperLinkColumn>组合框列(GridViewDataComboBoxColumn)<dx:ASPxGridView OnCellEditorInitialize="grid_CellEditorInitialize"><dxwgv:GridViewDataComboBoxColumn FieldName="City" VisibleIndex="2"> <PropertiesComboBox EnableSynchronization="False" EnableIncrementalFiltering ="True" DropDownStyle="DropDown" /></dxwgv:GridViewDataComboBoxColumn></dx:ASPxGridView>protected void grid_CellEditorInitialize(object sender, ASPxGridViewEditorEventArgs e){// 用下拉框展示国家下的所有城市绑定数据源if(grid.IsEditing && e.Column.FieldName != "City" && !grid.IsNewRowEditing){ASPxComboBox combo = e.Editor as ASPxComboBox;string country = (string)grid.GetRowValuesByKeyValue(e.KeyValue, "Country");FillCityCombo(combo, country);}}命令按钮列(GridViewCommandColumn)<dx:ASPxGridView runat="server" KeyFieldName="ID"OnRowDeleting="gv_RowDeleting" OnRowUpdating="gv_RowUpdating" OnRowIn serting="gv_RowInserting"<Columns>一种是添加图片的<dx:GridViewCommandColumn VisibleIndex="0" ButtonType="Image" Caption=操作"><EditButton Visible="True"><Image ToolTip="修改" Url="Images/edit.png" /></EditButton><NewButton Visible="True"><Image ToolTip="新建" Url="Images/new.png" /></NewButton><DeleteButton Visible="true"><Image ToolTip="删除" Url="Images/del.png" /></DeleteButton><CancelButton Visible="True"><Image ToolTip="关闭" Url="Images/cancel.png" /></CancelButton><UpdateButton Visible="True"><Image ToolTip="保存" Url="Images/update.png" /></UpdateButton><ClearFilterButton Visible="true"><Image ToolTip="清空" Url="Images/del2.png" /></ClearFilterButton><HeaderStyle HorizontalAlign="Center" /></dx:GridViewCommandColumn>一种就只这种标准的:<dxwgv:GridViewCommandColumn><EditButton Visible="True" Text="修改" /><DeleteButton Visible="true" Text="删除" /><NewButton Visible="True" Text="新建" /><CancelButton Visible="true" Text="取消" /><UpdateButton Visible="true" Text="保存" /><ClearFilterButton Visible="true" Text="取消过滤" /></dxwgv:GridViewCommandColumn></Columns></dx:ASPxGridView>代码详见《ASPxGridView.DataBind》复选框列<dxwgv:GridViewCommandColumn ShowSelectCheckbox="True"/><dxwgv:GridViewCommandColumn ShowSelectCheckbox="True"><HeaderTemplate><input type="checkbox" onclick="grid.SelectAllRowsOnPage(this.checked);" t itle="选择/放弃选择本页的所有行" /></HeaderTemplate><HeaderStyle HorizontalAlign="Center" /></dxwgv:GridViewCommandColumn>自定义按钮“删除”按钮<dx:GridViewCommandColumn Caption="删除"><CustomButtons><dx:GridViewCommandColumnCustomButton ID="DeleteFile" Text="删除" /> </CustomButtons></dx:GridViewCommandColumn>protected void gv_CustomButtonCallback(object sender, ASPxGridViewCustomBu ttonCallbackEventArgs e){if (e.ButtonID == "DeleteFile"){long fileId = Convert.ToInt64(gv.GetRowValues(e.VisibleIndex, "FileId"));string fileName = gv.GetRowValues(e.VisibleIndex, "FileName").ToString();string filePath = Common.Config.Path.PhysicalUploadFolder + gv.GetRowV alues(e.VisibleIndex, "FilePath").ToString();System.IO.File.Delete(filePath);using (DbFile db = new DbFile())db.DelFile(fileId);ShowData(this.FileBatchId);}}“复制行”按钮<dx:ASPxGridView runat="server" OnCustomButtonCallback="grid_CustomButto nCallback"><Columns><dxwgv:GridViewCommandColumn VisibleIndex="0"><CustomButtons><dxwgv:GridViewCommandColumnCustomButton Text="复制行" ID=" Copy" /></CustomButtons></dxwgv:GridViewCommandColumn></Columns></dx:ASPxGridView>Hashtable copiedValues;protected void grid_CustomButtonCallback(object sender, ASPxGridViewCustomB uttonCallbackEventArgs e){if(e.ButtonID == "Copy"){copiedValues = new Hashtable();foreach(string fieldName in copiedFields)copiedValues[fieldName] = grid.GetRowValues(e.VisibleIndex, fieldNam e);grid.AddNewRow();}}protected void grid_InitNewRow(object sender, DevExpress.Web.Data.ASPxDataI nitNewRowEventArgs e){if(copiedValues != null)foreach(string fieldName in copiedFields)e.NewValues[fieldName] = copiedValues[fieldName];}非绑定列(GridViewDataTextColumn)<dxwgv:GridViewDataTextColumn FieldName="Total" UnboundType="Decimal" /> protected void grid_CustomUnboundColumnData(object sender, DevExpress.Web.ASP xGridView.ASPxGridViewColumnDataEventArgs e){// Total = UnitPrice * Quantityif(e.Column.FieldName == "Total"){decimal price = (decimal)e.GetListSourceFieldValue("UnitPrice");int quantity = Convert.ToInt32(e.GetListSourceFieldValue("Quantity"));e.Value = price * quantity;}}模板列(GridViewDataTextColumn)onhtmlrowcreated="grid_HtmlRowCreated"<dxwgv:GridViewDataTextColumn Name="Percent" Caption="Change" FieldName="Ch ange"><DataItemTemplate><asp:Image ID="changeImage" runat="server" ImageUrl="~/Images/arGreen.gi f" Visible="false" GenerateEmptyAlternateText="True" /><asp:Label ID="changePercent" runat="server" Text="" /><a href="javascript:void(0);" onclick="OnMoreInfoClick(this, '<%# Container.Ke yValue %>')">更多...</a><a href="../pages/download.ashx?path=../uploads/<%#Eval("FilePath")%>&na me=<%#Eval("FileName") %> " >下载</a></DataItemTemplate></dxwgv:GridViewDataTextColumn>protected void grid_HtmlRowCreated(object sender, ASPxGridViewTableRowEventArgs e){if (!grid.IsEditing && e.RowType == DevExpress.Web.ASPxGridView.GridViewRowT ype.Data){// 操作Label 控件Label label = grid.FindRowCellTemplateControl(e.VisibleIndex, null, "changePerc ent") as Label;decimal change = (decimal)grid.GetRowValues(e.VisibleIndex, "Change");label.Text = string.Format("{0:p}", change);// 操作Image 控件System.Web.UI.WebControls.Image img = (System.Web.UI.WebControls.Image) grid.FindRowCellTemplateControl(e.VisibleIndex, null, "changeImage");img.Visible = false;if(change != 0){img.Visible = true;img.ImageUrl = change < 0 ? "~/Images/arRed.gif" : "~/Images/arGreen.gif ";label.ForeColor = change < 0 ? Color.Red : Color.Green;}}}注:模板列中的事件如何写?手工写事件,如btn.OnClick += ...;注:视图模板请参考文档《ASPxGridView.Templates》ASPxGridView 事件RowCreated(创建行数据时触发,类似GridView 的DataItemCreate 事件)protected void grid_HtmlRowCreated(object sender, DevExpress.Web.ASPxGridView.A SPxGridViewTableRowEventArgs e){if(e.RowType != DevExpress.Web.ASPxGridView.GridViewRowType.Data) return;// 设置模板列lable控件值Label label = grid.FindRowCellTemplateControl(e.VisibleIndex, null, "changePercent ") as Label;decimal change = (decimal)grid.GetRowValues(e.VisibleIndex, "Change");label.Text = string.Format("{0:p}", change);// 设置模板列image控件的图像System.Web.UI.WebControls.Image img = (System.Web.UI.WebControls.Image)gri d.FindRowCellTemplateControl(e.VisibleIndex, null, "changeImage");img.Visible = false;if(change != 0) {img.Visible = true;img.ImageUrl = change < 0 ? "~/Images/arRed.gif" : "~/Images/arGreen.gif";label.ForeColor = change < 0 ? Color.Red : Color.Green;}}HtmlRowPrepared(行准备?可在此设置行的展示效果,如背景)protected void grid_HtmlRowPrepared(object sender, ASPxGridViewTableRowEventArg s e){bool hasError = e.GetValue("FirstName").ToString().Length <= 1;hasError = hasError || e.GetValue("LastName").ToString().Length <= 1;hasError = hasError || !e.GetValue("Email").ToString().Contains("@");hasError = hasError || (int)e.GetValue("Age") < 18;DateTime arrival = (DateTime)e.GetValue("ArrivalDate");hasError = hasError || DateTime.Today.Year != arrival.Year || DateTime.Today.Mo nth != arrival.Month;if(hasError) {e.Row.ForeColor = System.Drawing.Color.Red;}}UnboundColumnData (非绑定列数据填充)protected void grid_CustomUnboundColumnData(object sender, DevExpress.Web.ASP xGridView.ASPxGridViewColumnDataEventArgs e){if(e.Column.FieldName == "Total"){decimal price = (decimal)e.GetListSourceFieldValue("UnitPrice");int quantity = Convert.ToInt32(e.GetListSourceFieldValue("Quantity"));e.Value = price * quantity;}}CustomColumnDisplayText(定制列文本展示)protected void grid_CustomColumnDisplayText(object sender, DevExpress.Web.ASPx GridView.ASPxGridViewColumnDisplayTextEventArgs e){if(object.Equals(e.Column, grid.Columns["Size"]))e.DisplayText = GetSizeDisplayText(e.Value);}SummaryDisplayText(合计行文本展示)protected void grid_SummaryDisplayText(object sender, DevExpress.Web.ASPxGridVi ew.ASPxGridViewSummaryDisplayTextEventArgs e) {if(e.Item.FieldName == "Size") {e.Text = GetSizeDisplayText(e.Value);}}HeaderFilterFillItems(自定义过滤器处理逻辑)protected void grid_HeaderFilterFillItems(object sender, ASPxGridViewHeaderFilterEve ntArgs e){if(object.Equals(e.Column, grid.Columns["Total"])) {PrepareTotalFilterItems(e);return;}if(object.Equals(e.Column, grid.Columns["Quantity"])) {PrepareQuantityFilterItems(e);return;}}---------------------------------------------------------回调处理---------------------------------------------------------CustomCallback(Ajax 回调处理)<select id="selGridLayout" onchange="grid.PerformCallback(this.value);" > <option selected="selected" value="0">Country</option><option value="1">Country, City</option><option value="2">Company Name</option></select>protected void grid_CustomCallback(object sender, ASPxGridViewCustomCallbackEven tArgs e){int layoutIndex = -1;if(int.TryParse(e.Parameters, out layoutIndex))ApplyLayout(layoutIndex); // 更换布局}CustomButtonCallback(定制按钮的ajax回调处理)protected void grid_CustomButtonCallback(object sender, ASPxGridViewCustomButton CallbackEventArgs e){if(e.ButtonID != "Copy") return;copiedValues = new Hashtable();foreach(string fieldName in copiedFields)copiedValues[fieldName] = grid.GetRowValues(e.VisibleIndex, fieldName);grid.AddNewRow();}---------------------------------------------------------编辑视图---------------------------------------------------------InitNewRow(新建行的数据初始化处理)protected void grid_InitNewRow(object sender, DevExpress.Web.Data.ASPxDataInitNe wRowEventArgs e){if(copiedValues == null) return;foreach(string fieldName in copiedFields) {e.NewValues[fieldName] = copiedValues[fieldName];}}CellEditorInitialize(编辑器初始化)protected void grid_CellEditorInitialize(object sender, ASPxGridViewEditorEventArgs e){if(grid.IsEditing && !grid.IsNewRowEditing && e.Column.FieldName == "City"){string country = (string)grid.GetRowValuesByKeyValue(e.KeyValue, "Country");ASPxComboBox combo = e.Editor as ASPxComboBox;FillCityCombo(combo, country);combo.Callback += new CallbackEventHandlerBase(cmbCity_OnCallback);}}StartRowEditing(开始编辑)protected void grid_StartRowEditing(object sender, DevExpress.Web.Data.ASPxStartRowEditingEventArgs e){if(!grid.IsNewRowEditing) {grid.DoRowValidation();}}RowValidating (行数据验证)protected void grid_RowValidating(object sender, DevExpress.Web.Data.ASPxDataVali dationEventArgs e){foreach(GridViewColumn column in grid.Columns) {GridViewDataColumn dataColumn = column as GridViewDataColumn;if(dataColumn == null) continue;if(e.NewValues[dataColumn.FieldName] == null) {e.Errors[dataColumn] = "Value can't be null.";}}if(e.Errors.Count > 0) e.RowError = "Please, fill all fields.";if(e.NewValues["FirstName"] != null && e.NewValues["FirstName"].ToString().Lengt h < 2) {AddError(e.Errors, grid.Columns["FirstName"], "First Name must be at least two characters long.");}if(e.NewValues["LastName"] != null && e.NewValues["LastName"].ToString().Lengt h < 2) {AddError(e.Errors, grid.Columns["LastName"], "Last Name must be at least two characters long.");}if(e.NewValues["Email"] != null && !e.NewValues["Email"].ToString().Contains("@")) {AddError(e.Errors, grid.Columns["Email"], "Invalid e-mail.");}int age = 0;int.TryParse(e.NewValues["Age"] == null ? string.Empty : e.NewValues["Age"].ToS tring(), out age);if(age < 18) {AddError(e.Errors, grid.Columns["Age"], "Age must be greater than or equal 1 8.");}DateTime arrival = DateTime.MinValue;DateTime.TryParse(e.NewValues["ArrivalDate"] == null ? string.Empty : e.NewValu es["ArrivalDate"].ToString(), out arrival);if(DateTime.Today.Year != arrival.Year || DateTime.Today.Month != arrival.Month) {AddError(e.Errors, grid.Columns["ArrivalDate"], "Arrival date is required and mu st belong to the current month.");}if(string.IsNullOrEmpty(e.RowError) && e.Errors.Count > 0) e.RowError = "Please, correct all errors.";if (e.NewValues["Name"] == null){e.RowError = "功能名称不能为空,请填写功能名称";return;}if (e.NewValues["Remarks"] == null){e.RowError = "功能备注不能为空,请填写功能备注";return;}}行修改事件 RowUpdatingprotected void gvFunction_RowUpdating(object sender,DevExpress.Web.Data.ASPxDataUpdatingEventArgs e){ = e.NewValues[0].ToString();// 组名称functionModel.Remarks = e.NewValues[1].ToString(); // 组备注functionModel.FunctionId = e.Keys[0].ToString();// IDrmodel = client.FunctionEdit(functionModel);// 返回类型表gvFunction.CancelEdit();//结束编辑状态e.Cancel = true;FunctionDataBind();//更新数据}行添加事件RowInsertingprotected void gvFunction_RowInserting(object sender,DevExpress.Web.Data.ASPxDataInsertingEventArgs e){ = e.NewValues[0].ToString();// 组名称functionModel.Remarks = e.NewValues[1].ToString(); // 组备注rmodel = client.FunctionSubmit(functionModel);// 返回类型表gvFunction.CancelEdit();//结束编辑状态e.Cancel = true;FunctionDataBind();//更新数据}行删除事件RowDeletingprotected void gvFunction_RowDeleting(object sender,DevExpress.Web.Data.ASPxDataDeletingEventArgs e){functionModel.FunctionId = e.Keys[0].ToString();// IDclient.FunctionInfoDelete(functionModel);gvFunction.CancelEdit();//结束编辑状态e.Cancel = true;FunctionDataBind();//更新数据}初始化回调事件 Callbackprotected void callbackPanel_Callback(object sender,DevExpress.Web.ASPxClasses.CallbackEventArgsBase e){strGroupID = e.Parameter.ToString();DataBindInfo();// 初始化页面信息SelectUser();// 查找组里面的所有用户DataCheck();}获取行展开改变事件DetailRowExpandedChangedprotected void gvGroup_DetailRowExpandedChanged(object sender, ASPxGridViewDetailRowEventArgs e){SYSolution_WebUI.ServiceReference.GroupInfo groupInfoModel =(SYSolution_WebUI.ServiceReference.GroupInfo)((ASPxGridView)sender).GetRow(e.VisibleIndex);/ / 获取选中行实体ASPxGridView gv =(ASPxGridView)gvGroup.FindDetailRowTemplateControl(e.VisibleIndex, "gvGroupName"); // 获取模板内aspxgridView ID名称SYSolution_WebUI.ServiceReference.GroupInfo[] model =client.GroupSelUserList("GroupId='" + groupInfoModel.GroupId + "'");// 通过组ID值获取实体对象 if (model[0].UserInfoList != null && gv != null)// 当用用户列表值与子aspxgridView 不为空{gv.DataSource = model[0].UserInfoList; // 子aspxgridView绑定数据源gv.DataBind();}if (model[0].UserInfoList[0].Name == "") // 如果子aspxgridView中的用户列表为空时不显示不展开{gvGroup.SettingsDetail.AllowOnlyOneMasterRowExpanded = false;}}排序事件中重新绑定数据 BeforeColumnSortingGroupingprotected void gvGroup_BeforeColumnSortingGrouping(object sender, ASPxGridViewBeforeColumnGroupingSortingEventArgs e){gvGroup.DetailRows.CollapseAllRows();// 关闭所有DetailoRowgvGroup.DetailRows.ExpandRow(3);}重绑定数据使用时先选中行,再查看 FocusedRowChangedProtected void aspxGridView_FocusedRowChanged(object sender,EventArgs e){}行列绑定数据事件CustomUnboundColumnDataProtected void aspxGridView_CustomUnboundColumnData(object sender,EventArgs e){}.隐藏编辑列,在DataBound事件中protected void ASPxGridView1_DataBound(object sender, EventArgs e) {if(ASPxGridView1.VisibleRowCount>0){//ASPxGridView1.Columns[命令列索引](ASPxGridView1.Columns[4] as GridViewCommandColumn).NewButton.Visible = false;}}。

.NET4.0 绑定控件与数据源控件

.NET4.0 绑定控件与数据源控件

4.0 绑定控件与数据源控件微软定义了一系列的控件专门用于显示数据的格式,通过这些控件可以可视化的方式查看绑定数据之后的效果。

这些控件称之为数据绑定控件。

在中,所有的数据库绑定控件都是从BaseDataBoundControl这个抽象类派生的,这个抽象类定义了几个重要属性和一个重要方法:●DataSource属性指定数据绑定控件的数据来源,显示的时候程序将会从这个数据源中获取数据并显示。

●DataSourceID属性指定数据绑定控件的数据源控件的ID,显示的时候程序将会根据这个ID找到相应的数据源控件,并利用这个数据源控件中指定方法获取数据并显示。

●DataBind ()方法当指定了数据绑定控件的DataSource属性或者DataSourceID属性之后,再调用DataBind()方法显示绑定的数据。

在使用数据源时,先尝试使用DataSourceID属性标识的数据源,如果没有设置DataSourceID时才会用到DataSource属性标识的数据源。

也就是说DataSource和DataSourceID两个属性不能同时使用。

在中,主要包含5个数据源控件,如GridView、DataList、Repeator、DetailsView、FormView。

其中,前3个控件用于呈现多列数据,而后面2个控件用于呈现单列数据。

●GridView控件GridView 控件以表的形式显示数据,并提供对列进行排序、分页、翻阅数据以及编辑或删除单个记录的功能。

GridView 控件是 的早期版本中提供的DataGrid 控件的后继控件。

除了添加利用数据源控件功能的新功能,GridView 控件还实现了某些改进。

●DetailsView控件DetailsView控件一次呈现一条表格形式的记录,并提供翻阅多条记录以及插入、更新和删除记录的功能。

DetailsView 控件通常用在主/详细信息方案中,在这种方案中,主控件(如GridView 控件)中的所选记录决定了DetailsView 控件显示的记录。

GridView控件的说明和使用

GridView控件的说明和使用

GridView控件的学习和使用一.数据绑定简介数据绑定就是将数据源中的数据显示到数据服务控件中。

数据源可以是数据库表、数组、集合等。

数据服务控件是专门用于在页面上显示数据的一种控件。

我们将主要介绍GridView控件、DataList控件、Repeater控件。

所有的数据绑定都通过DataBind()函数来实现。

在实现数据绑定的时候,首先要指明数据源,然后再使用DataBind()函数。

GridView1.DataSource = dataset;GridView1.DataBind();二.GridView控件简介GridView控件是2003中DataGrid控件的升级版本,它提供了比DataGrid更强大的功能,同时比DataGrid更加易用。

GridView控件是一个功能强大的控件。

它可以使用数据绑定技术,在数据初始化的时候绑定一个数据源,从而显示数据。

除了能够显示数据外,还可以实现编辑、排序和分页等功能,而这些功能的实现有时可以不写代码或写很少的代码。

三.GridView控件的属性GridView控件的属性很多,总体上可以分为分页、数据、行为、样式等几类。

1)分页:主要是设置是否分页、分页标签的显示样式、页的大小等。

2)数据:设置控件的数据源。

3)行为:主要进行一些功能性的设置,如:是否排序、是否自动产生列、是否自动产生选择删除修改按钮等。

4)样式:设置GridView控件的外观,包括选择行的样式、用于交替的行的样式、编辑行的样式、分页界面样式、脚注样式、标头样式等。

具体属性的解释参见示例演示四. GridView控件的事件GridView控件的事件非常丰富。

当在GridView控件上操作时就会产生相应的事件。

要实现的功能代码就写在相应的事件中。

GridView控件的常用事件主要有:1)PageIndexChanging:当前索引正在改变时触发。

2)RowCancelingEdit:当放弃修改数据时触发。

.net listview用法

.net listview用法

.net listview用法在.NET框架中,ListView是一个用于显示和编辑数据项的强大控件。

它允许用户以图形方式显示项目的列表,通常用于显示和编辑数据的表格形式。

以下是关于.NET中ListView控件的用法的详细介绍,包括创建、添加项、列、样式设置以及事件处理等方面的内容。

1. 创建ListView控件:在Windows窗体或其他.NET应用程序中,您可以通过拖放或编程方式创建ListView控件。

通过拖放:•打开窗体设计器。

•在工具箱中找到ListView控件。

•将ListView控件从工具箱拖放到窗体上。

通过编程:ListView myListView =new ListView();myListView.Dock=DockStyle.Fill;this.Controls.Add(myListView);2. 添加列和项:// 添加列myListView.Columns.Add("列1",100);myListView.Columns.Add("列2",150);// 添加项ListViewItem item =new ListViewItem("项目1");item.SubItems.Add("子项1");myListView.Items.Add(item);3. 设置样式和属性:// 显示网格线myListView.GridLines=true;// 选择模式myListView.MultiSelect=false;// 单选myListView.FullRowSelect=true;// 整行选择// 排序myListView.Sorting=SortOrder.Ascending;// 或SortOrder.Descendin g// 列头点击事件myListView.ColumnClick+=new ColumnClickEventHandler(ListView_C olumnClick);4. 处理事件:private void ListView_ColumnClick(object sender,ColumnClickEventAr gs e){// 处理列头点击事件// 可以在此进行排序等操作}5. 编辑和删除项:// 编辑项myListView.SelectedItems[0].Text="新文本";myListView.SelectedItems[0].SubItems[1].Text="新子项文本";// 删除项myListView.Items.Remove(myListView.SelectedItems[0]);6. 数据绑定:// 使用数据绑定List<MyData>dataList =new List<MyData>();// 填充dataListmyListView.View=View.Details;myListView.Columns.Add("列1");myListView.Columns.Add("列2");foreach(MyData data in dataList){ListViewItem item =new ListViewItem(data.Column1);item.SubItems.Add(data.Column2);myListView.Items.Add(item);}以上是ListView控件的一些基本用法。

Gridview控件的使用要点

Gridview控件的使用要点

Gridview控件的使⽤要点在Gridview的使⽤中,需要记住的⼏点:1、在表格的删除、更新等操作中,如何关联数据库的主键。

如有⼀学⽣信息表:有如下⼏个字段:studID--学⽣ID,studNo--学号,studName--姓名,studSex--性别,studScore--成绩。

其中,studID为表的主键。

下⾯有两种⽅法,使Gridview设置和获取表的主键。

⽅法⼀: 使⽤Gridview的“编辑列”中的“字段”对话框,由CommandField⽣成的“删除”按钮,见下⾯的代码:<asp:CommandField ShowDeleteButton="True" />Girdview前台部分页⾯代码如下:<asp:GridView ID="GridView1" runat="server" AllowPaging="True"AutoGenerateColumns="False" onpageindexchanging="GridView1_PageIndexChanging"onrowdatabound="GridView1_RowDataBound" PageSize="5" Width="657px"onrowdeleting="GridView1_RowDeleting"onrowcancelingedit="GridView1_RowCancelingEdit"onrowediting="GridView1_RowEditing" onrowupdating="GridView1_RowUpdating"onrowcommand="GridView1_RowCommand"><PagerSettings FirstPageText="第⼀页" LastPageText="最后页" Mode="NextPrevious"NextPageText="下⼀页" PreviousPageText="上⼀页" /> <Columns> <asp:BoundField DataField="studNo" HeaderText="学号" /> <asp:BoundField DataField="studName" HeaderText="姓名" /> <asp:BoundField DataField="studSex" HeaderText="性别" /> <asp:BoundField DataField="studScore" HeaderText="成绩" /> <asp:CommandField ShowDeleteButton="True" /> <asp:CommandField ShowEditButton="True" /> </Columns><PagerStyle HorizontalAlign="Right" /><HeaderStyle BackColor="#339966" /></asp:GridView>后台代码如下:public partial class gridviewTest : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){if (!this.IsPostBack){DBind();}}下⾯的DBind()函数中利⽤Gridview的DataKeyNames属性绑定到数据表的主键。

GridView 样式的美化及应用

GridView 样式的美化及应用

GridView 样式的美化及应用作者:王娜朱秀群马强来源:《电脑知识与技术》2012年第28期摘要: 4.0中GridView控件主要用于显示数据库的查询结果。

文中对GridView 控件的样式美化进行了研究,探讨了GridView控件在应用过程中的自动排序及动态添加列等功能,并给出了其实现方法。

经过系统的应用与实践验证,基本实现了预期的效果。

关键词:GridView;class 绑定;事件中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2012)28-6716-03序、更新、删除、选择和分页。

当 GridView 控件绑定到某个数据源控件时,GridView控件可利用该数据源控件的功能并提供自动排序、更新和删除功能,而这些功能的实现有时可以不写代码或写很少的代码。

GridView还引入了一批新的功能强大的视图控件,并为方便开发人员定制编程提供了大量的模板支持。

但这些模板往往不能满足许多特定的要求,本文就对GridView的样式及一些常用功能做了简单的研究。

1 GridView样式1.1 表头样式要改变GridView的表头样式我们可以通过控制列标记内设置来实现,代码如下:然后在css样式表中设置:但这样你会发现表头并未按你的要求居左显示,由于GridView在生成html的时候,表头对应的是th标记,th的默认的样式是居中粗体,即使你定义并在HeaderStyle中应用了样式:text-align:left;,表头依然是居中显示。

这是因为生成时html时该样式是被应用在tr上的,类似:,所以,你这样应用的表头样式是无法生效的。

只有你在样式表中定义了:tr{text-align:left},才可以让表头靠左显示。

1.2 边框样式这样的缺点是不太灵活,如果需要用主题来控制界面样式,而代码中又有这样的语句的话,就不是很合适,利用css提供的机制,可以比较好的解决这个问题,代码如下:然后在css样式表中设置:这样就解决了gridview的边框问题1.3 隔行变色为了提高表格的可阅读性和界面的友好性,GridView一般都采用现在比较流行的隔行改变背景色的效果,也可以通过GridView提供的AlternatingRowStyle属性来控制但常常会出现表格错乱等现象,因此我们采用通过js计算单双行来改变背景色的方法,代码简单且兼容性也较好,代码如下://设置每一行的背景色和事件,循环从1开始而非0,可以避开表头那一行调用:2.4 鼠标经过行变色想要实现很炫的鼠标经过行变色效果只需在GridView的RowDataBound事件中加入如下代码://判断是否为数据行//鼠标悬停把原来颜色赋给C,修改当前颜色为#00ffee//鼠标离开改回原来颜色2 GridView常用功能2.1动态添加列在实际应用中我们经常要在末尾列或任意位置动态的添加列,其实现代码如下://构造一个数据列对象出来//加此数据列进入GridView//或者插入到指定位置2.2 自动序列号有时我们需要对GridView表格显示的结果增加一列自动递增编号列,以标示每一行的序号。

.NET4.0 添加ListView控件

.NET4.0  添加ListView控件

4.0 添加ListView控件添加ListView 控件与添加GridView控件和DataList控件的方法,非常相似。

而只不过该控件与可GridView控件和DataList控件,在显示上有一定的区别。

ListView 控件使用4种不同视图显示项目,如可将项目组成带有或不带有列标头的列,并显示伴随的图标和文本。

(1)创建站点,并在Default.aspx文件的【设计】视图中,添加ListView 控件。

例如,选择工具箱中的【数据】组中的ListView控件,并拖至<body>标签中,如图10-29所示。

图10-29 添加控件(2)在【ListView任务】框中,选择【选择数据源】列表中【<新建数据源…>】选项,如图10-30所示。

图10-30 新建数据源(3)在弹出的【选择数据源类型】中,选择SQL数据库,并自动产生数据源指定的ID,单击【确定】按钮,如图10-31所示。

图10-31 添加数据源(4)在弹出的【选择您的数据连接】对话框中,在列表中选择已经连接好的数据源,单击【下一步】按钮,如图10-32所示。

图10-32 选择数据源(5)在【配置Select语句】对话框中,选择“指定来自表或视图的列”选项,并选择星号(*),单击【下一步】按钮,如图10-33所示。

图10-33 选择字段列(6)在弹出的【测试查询】对话框中,单击【测试查询】按钮即可显示数据内容,单击【完成】按钮,如图10-34所示。

图10-34 显示查询数据(7)在【ListView任务】框中,单击【配置ListView】链接,如图10-35所示。

图10-35 配置ListView控件(8)在【配置ListView】对话框中,选择【样式】为“蓝调”,并启用【启用分页】复选框,单击【确定】按钮,如图10-36所示。

图10-36 配置ListView控件(9)此时,ListView控件,将显示数据源中的内容,并显示分页按钮等,如图10-37所示。

.NET4.0 添加FormView控件

.NET4.0  添加FormView控件

4.0 添加FormView控件在前面的内容中,已经详细介绍了添加GridView和DataList等绑定控件的应用。

而在中,除了这两个控件以外,还包含有其他的绑定控件。

用户也可以通过其他的控件,来显示数据库中的数据。

(1)创建BoundControl站点,并添加Default.aspx窗体文件,如图10-1所示。

图10-1 创建站点(2)打开Default.aspx文件的【设计】视图,并选择工具箱【数据】组中的ForaView 控件,拖至div标签中,如图10-2所示。

图10-2 添加控件(3)在【FormView任务】框中,单击【选择数据源】后面的列表,并选择【<新建数据源…>】选项,如图10-3所示。

图10-3 添加数据源(4)在【数据源配置向导】对话框中,选择“SQL数据库”图标,并自动创建数据源ID名称,如图10-4所示。

图10-4 选择数据类型(5)单击【确定】按钮,在弹出的【配置数据源】对话框中,选择已经创建的数据连接项,并单击【下一步】按钮,如图10-5所示。

图10-5 添加连接选项(6)在弹出的【配置Select语句】对话框中,可以指定表或视图的列(字段),单击【下一步】按钮,如图10-6所示。

图10-6 添加列内容(7)在弹出的【测试查询】对话框中,可以单击【测试查询】按钮,来查看在页面中所要显示的数据,并单击【完成】按钮,如图10-7所示。

图10-7 显示连接的数据(8)在【FormView 任务】框中,启用【启用分页】复选框,并在数据绑定的项下面显示分页结果,如图10-8所示。

在该对话框中,用户还可以分别单击【WHERE 】、【ORDER BY 】和【高级】按钮,来限制显示的数据内容。

图10-8 添加分页功能(9)选择【源】设计模式,并修改id、name、Paren、show等字段名为中文名称,如图10-9所示。

图10-9 修改字段列名称(10)单击【启动调试】按钮,并通过浏览器查看所显示的数据信息,如图10-10所示。

gridview用法

gridview用法

GridView用法一、概述GridView是Android中非常常用的一个控件,它可以以网格的形式展示大量数据,并且支持滚动和分页加载。

在开发过程中,我们经常需要使用GridView来展示图片、商品列表等具有规律性的数据。

本文将深入探讨GridView的用法,包括如何创建、布局、填充数据以及处理点击事件等方面的内容。

二、创建GridView要创建一个GridView,首先需要在XML布局文件中添加GridView控件。

如下所示:<GridViewandroid:id="@+id/grid_view"android:layout_width="match_parent"android:layout_height="match_parent"android:numColumns="3"android:stretchMode="columnWidth"android:horizontalSpacing="10dp"android:verticalSpacing="10dp"/>上述代码中,我们使用了GridView控件,并且为其指定了id、宽度、高度、列数和间距等属性。

其中,android:numColumns属性用于指定每一行显示的列数,这里我们设置为3列;android:stretchMode属性用于指定当内容不足一行时,是否拉伸填充满整个GridView;android:horizontalSpacing和android:verticalSpacing属性用于指定每个网格之间的水平和垂直间距。

三、填充GridView数据在使用GridView之前,我们需要为其填充数据。

通常情况下,我们可以通过适配器(Adapter)来为GridView提供数据。

datagrid控件的用法

datagrid控件的用法

datagrid控件的用法(原创版)目录1.数据网格控件概述2.数据网格控件的基本用法3.数据网格控件的进阶用法4.数据网格控件的常见问题及其解决方案正文一、数据网格控件概述数据网格控件(DataGrid)是一种常用于显示数据的网格控件,方便用户以直观的方式查看和操作数据。

在众多编程语言和平台中,数据网格控件有着不同的名称和实现方式,如在 Visual Basic中,数据网格控件常被称为DataGrid;在C#中,则称为DataGridView。

尽管名称不同,其实现的功能和用法却大同小异。

二、数据网格控件的基本用法数据网格控件的基本用法主要包括以下几个方面:1.添加数据:通过设置数据源(DataSource)属性,将数据添加到数据网格控件中。

数据源可以是数据库、数据表、数组等各种数据存储方式。

2.显示数据:在数据网格控件中,用户可以通过单元格(Cell)查看和编辑数据。

数据网格控件会自动根据数据源的结构,生成对应的列名和单元格。

3.排序和筛选:数据网格控件支持根据指定列进行排序和筛选操作。

用户可以通过设置控件的属性或使用事件处理程序来实现这些功能。

4.编辑数据:用户可以在数据网格控件中直接编辑数据。

编辑时,控件会自动检查数据格式,确保数据的正确性。

三、数据网格控件的进阶用法除了基本的显示和编辑数据功能,数据网格控件还提供了许多进阶用法,如:1.添加下拉列表框:通过设置单元格的编辑模式,可以将单元格中的数据转换为下拉列表框,方便用户选择数据。

2.实现分页:数据网格控件可以实现分页显示,以便用户更方便地查看大量数据。

3.删除确认及 Item 颜色交替:在数据网格控件中,用户可以对选中的行进行删除操作。

为了防止误操作,可以添加删除确认功能,并在删除时改变 Item 颜色,以示区别。

4.动态绑定 DropDownList:通过编程,可以使数据网格控件中的单元格根据特定条件动态绑定到 DropDownList。

.NET4.0 LINQ技术与GridView组件的综合应用

.NET4.0   LINQ技术与GridView组件的综合应用

4.0 LINQ技术与GridView组件的综合应用
本扩展练习主要实现LINQ技术与GridView组件的结合应用。

LINQ实现数据的查询功能,而GridView控件实现数据源的绑定并显示在浏览器中。

(1)在Visual Studio2010中,执行【文件】|【新建】|【网站】命令,新建名为ShowContent的空网站。

(2)打开【文件】|【新建文件】命令,弹出【添加新项】对话框。

在该对话框中选择“Web窗体”模板,并输入文件名称为Query.aspx,单击【添加】按钮。

然后可以看到在【解决方案资源管理器】面板中会显示文件Query.aspx以及它的代码页文件Query.aspx.cs。

(3)在【解决方案资源管理器】面板中,双击“Query.aspx”树状菜单元素,
图9-22 执行结果。

winform datagridview控件用法

winform datagridview控件用法

winform datagridview控件用法Winform DataGridView 控件用法详解一、简介Winform DataGridView 控件是 .NET Framework 中提供的一个强大的数据显示和编辑控件。

它可以显示和编辑多种类型的数据(如文本、数字、日期、图像等),并且提供了丰富的功能和灵活的样式设置,可以方便地实现数据的展示、排序、筛选、编辑、分页等操作。

二、绑定数据源1. 绑定数据集可以通过设置DataGridView 的DataSource 属性来绑定一个数据集(DataSet)或数据表(DataTable)。

在Visual Studio 的设计器中,通过选择数据源和数据成员来实现绑定,也可以通过代码实现。

例如:dataGridView1.DataSource = dataSet.Tables["TableName"];2. 绑定数据集合除了绑定数据集,还可以绑定数据集合(如List<T>、BindingList<T> 等)。

在数据集合发生变化时,DataGridView 会自动更新显示的数据。

例如:List<User> userList = new List<User>();dataGridView1.DataSource = userList;3. 动态绑定数据绑定数据源后,可以通过设置DataGridView 的AutoGenerateColumns 属性为true,自动根据数据源的结构创建列。

也可以通过手动添加列来控制显示的列数和顺序。

例如:dataGridView1.AutoGenerateColumns = true;三、设置列样式1. 自动调整列宽可以通过设置DataGridView 的AutoSizeColumnsMode 属性来调整列宽。

通常选择AllCells 或Fill,前者会根据列中的内容调整列宽,后者会填充整个控件。

灵活使用asp.net中的gridview控件

灵活使用asp.net中的gridview控件

灵活使⽤中的gridview控件gridview是常⽤的显⽰数据控件,对于.net开发⼈员来说应该是⾮常的熟悉了。

gridview⾃带有许多功能,包括分页,排序等等,但是作为⼀个.net开发⼈员来说熟练掌握利⽤存储过程分页或者第三⽅⾃定义分页⼗分重要,这不仅是项⽬的需要,也是我们经验能⼒的提⽰,下⾯我就来讲利⽤存储过程分页实现绑定gridview1、执⾏存储过程⽹上有许多sql分页存储过程的例⼦,但是你会发现其中有许多⼀部分是不能⽤的,例如有些使⽤in或者not in来分页效率⾮常的低,有些sp可以分页但是扩展型⾮常差,有些效率也⽐较⾼,但是不能返回查询记录总数,例如下⾯的这个分页,尽管⽐较简单,但是⽤not in来分页效率⽐较低,且查询表已经固定死了,⽆法扩展,其实是个失败的分页CREATE PROCEDURE GetProductsByPage@PageNumber int,@PageSize intASdeclare @sql nvarchar(4000)set @sql = 'select top ' + Convert(varchar, @PageSize) + ' * from test where id not in (select top ' + Convert(varchar, (@PageNumber - 1) * @PageSize) + ' id from test)'exec sp_executesql @sqlGO 综上我觉得这个分页总体上来说⽐较好的效率也⾮常的⾼且分页只需要执⾏⼀次sp,分页⽀持多表多标间查询ALTER PROCEDURE [dbo].[Proc_SqlPageByRownumber](@tbName VARCHAR(255), --表名@tbGetFields VARCHAR(1000)= '*',--返回字段@OrderfldName VARCHAR(255), --排序的字段名@PageSize INT=20, --页尺⼨@PageIndex INT=1, --页码@OrderType bit = 0, --0升序,⾮0降序@strWhere VARCHAR(1000)='', --查询条件@TotalCount INT OUTPUT --返回总记录数)AS-- =============================================-- Author: allen (liyuxin)-- Create date: 2012-03-30-- Description: 分页存储过程(⽀持多表连接查询)-- Modify [1]: 2012-03-30-- =============================================BEGINDECLARE @strSql VARCHAR(5000) --主语句DECLARE @strSqlCount NVARCHAR(500)--查询记录总数主语句DECLARE @strOrder VARCHAR(300) -- 排序类型--------------总记录数---------------IF ISNULL(@strWhere,'') <>''SET @strSqlCount='Select @TotalCout=count(*) from ' + @tbName + ' where 1=1 '+ @strWhereELSE SET @strSqlCount='Select @TotalCout=count(*) from ' + @tbNameexec sp_executesql @strSqlCount,N'@TotalCout int output',@TotalCount output--------------分页------------IF @PageIndex <= 0 SET @PageIndex = 1IF(@OrderType<>0) SET @strOrder=' ORDER BY '+@OrderfldName+' DESC 'ELSE SET @strOrder=' ORDER BY '+@OrderfldName+' ASC 'SET @strSql='SELECT * FROM(SELECT ROW_NUMBER() OVER('+@strOrder+') RowNo,'+ @tbGetFields+' FROM ' + @tbName + ' WHERE 1=1 ' + @strWhere+' ) tbWHERE tb.RowNo BETWEEN '+str((@PageIndex-1)*@PageSize+1)+' AND ' +str(@PageIndex*@PageSize)exec(@strSql)SELECT @TotalCountEND2 、封装c#调⽤语句我们总是习惯上对代码进⾏封装,这样可以提⾼代码的阅读效率,维护起来也更加⽅便,养成良好的封装代码习惯,我们就从初级步⼊了中级,其实这只是个习惯⽽已public static class PageHelper{/// <summary>/// 分页数据/// </summary>/// <param name="TableName">表明</param>/// <param name="RetureFields">返回字段</param>/// <param name="strWhere">条件</param>/// <param name="PageSize">每页记录数</param>/// <param name="CurPage">当前页数</param>/// <param name="RowCount">总记录数</param>/// <param name="sortField">排序字段</param>/// <returns></returns>public static DataTable GetPageList(string tbName, string tbGetFields, string OrderFldName, int PageSize, int PageIndex, int OrderType, string strWhere, out int TotalCount){SqlCommand cmd = new SqlCommand("Proc_SqlPageByRownumber");//存储过程名称mandType = CommandType.StoredProcedure;cmd.Parameters.AddWithValue("@tbName", tbName);//表名称cmd.Parameters.AddWithValue("@tbGetFields", tbGetFields);//要显⽰的字段名(不要加Select)cmd.Parameters.AddWithValue("@OrderfldName", OrderFldName);//排序索引字段名cmd.Parameters.AddWithValue("@PageIndex", PageIndex);//当前第⼏页,页码cmd.Parameters.AddWithValue("@PageSize", PageSize);//每页显⽰的数据条数cmd.Parameters.AddWithValue("@OrderType", OrderType);//设置排序类型,⾮0值则降序cmd.Parameters.AddWithValue("@strWhere", strWhere);//查询条件,不要加wherecmd.Parameters.Add(new SqlParameter("@TotalCount", SqlDbType.Int));cmd.Parameters["@TotalCount"].Direction = ParameterDirection.Output;DataTable dt = RunProcedureCmd(cmd);TotalCount = Convert.ToInt32(cmd.Parameters["@TotalCount"].Value.ToString());//返回的总页数return dt;}/// <summary>/// 执⾏存储过程,返回DataTable/// </summary>/// <param name="cmd"></param>/// <returns></returns>public static DataTable RunProcedureCmd(SqlCommand cmd){DataTable result = new DataTable();string connectionString = ConfigurationManager.AppSettings["CONNSTRING"].ToString();SqlConnection conn = new SqlConnection(connectionString);//你⾃⼰的链接字符串try{if ((conn.State == ConnectionState.Closed)){conn.Open();}cmd.Connection = conn;SqlDataAdapter da = new SqlDataAdapter(cmd);da.Fill(result);da.Dispose();conn.Close();conn.Dispose();return result;}catch (Exception ex){conn.Close();conn.Dispose();throw ex;}}}3、 gridview利⽤第三⽅插件实现分页分页现在⽐较流⾏的插件是aspnetpager,这是⼀个⽐较成熟的插件,⽹上也有许多的例⼦。

Gridview用法(个人总结)202X803

Gridview用法(个人总结)202X803

Gridview用法(个人总结)202X803Gridview用法(个人总结)202*0803Gridview的一些操作:1、添加删除列:直接使用Gridview的删除事件:1)选择Gridview的右上角任务栏,打开之后选择编辑列,然后选择CommandFiled,打开CommandFiled选择删除,然后选择添加,设置HeadText为删除。

2)打开Gridview控件的属性对话框,在事件中双击RowDeleting,然后添加删除事件代码:protectedvoidGridView1_RowDeleting(objectsender,GridViewDelete EventArgse){StringBuildersb=newStringBuilder();sb.AppendFormat(@"DELETEFRO MSUPPLIERSWHEREID="+Convert.ToInt32(GridView1.DataKeys[e.RowIndex] .Value));SQLHelperhelper=newSQLHelper();helper.ExecuteSql(sb.ToStr ing());Bindon();}不使用Gridview的删除事件:使用添加LinkButton的方法实现删除选定行1)选择Gridview的右上角任务栏,打开之后选择编辑列,然后选择TemplateField,设置HeadText为删除,然后在脚本中添加下面代码:2)打开Gridview控件的属性对话框,在事件中双击RowDataBound,添加如下代码://获取删除行的IDif(e.Row.RowType==DataControlRowType.DataRow){stringid=GridVie w1.DataKeys[e.Row.RowIndex].Value.ToString();//得到idLinkButtonibtnDel=(LinkButton)e.Row.FindControl("delet");//实例化LinButton按钮控件mandArgument=id;//指定删除按钮的关联参数ibtnDel.Attributes.Add("onclick","returnconfirm("确定要删除吗?");");}3)打开Gridview控件的属性对话框,在事件中双击RowCommand,添加如下代码:if(mandName=="del"){stringid=mandArgument.ToString();//获得IDStringBuildersb=newStringBuilder();sb.AppendFormat(@"DELETEFROMSUPPLIERSWHEREID="+id);SQLHelperhe lper=newSQLHelper();helper.ExecuteSql(sb.ToString());Bindon();}即可。

(七)Asp.NET的数据绑定控件--GridView控件的使用

(七)Asp.NET的数据绑定控件--GridView控件的使用

(七)的数据绑定控件--GridView控件的使⽤数据绑定的层次结构数据绑定控件将数据以标记的形式呈现给请求数据的浏览器。

常⽤数据绑定控件控件名称说明GridView以表格的⽅式显⽰和编辑数据,数据⽔平重复显⽰,第⼀⾏为表头DetailsView⼀次只能显⽰、编辑、插⼊或删除⼀条记录。

默认情况下,将记录的每个字段显⽰在它⾃⼰的⼀⾏内,字段名在左侧。

与DetailsView控件相似,⼀次也只能显⽰或编辑⼀条记录。

FormView需要给其设定⼀个模板,⽤于进⾏表单设计和详细信息显⽰。

DataList可以根据⽤户指定的格式来显⽰数据(⽐如分列显⽰),这种格式由模板和样式进⾏定义,数据以⾏和列双向显⽰。

Repeater没有包含内置的布局或样式,需要由Web开发者指定所有的⽤于显⽰数据的内部控件和显⽰样式ListView以嵌套容器模板和占位符的⽅式提供灵活的数据显⽰模式⼀、GridView控件是表格控件,所以它将数据以⼆维表的形式展现出来,控件的每⼀⾏即为每条数据,⽽列则为表格中对应的数据列。

我们通过借助数据绑定控件来实现类似表格这样的数据展⽰,其中GridView就是⽤来展⽰列表的数据绑定控件。

使⽤⽅法:1、在Web页⾯中放⼊⼀个GirdView控件放⼊成功后,可以修改⼀些GridView控件的Id:2、切换⾄设计视图,选择“编辑列”可实现对每⼀列的配置:3、选择BoundField,根据数据源的属性配置字段信息,其中DataField为字段名,HeaderText为标题:编辑后,页⾯会⽣成如下代码:4、在服务端通过来读取数据,并进⾏数据绑定显⽰效果如下:5、在本例中,如果要想让性别和是否删除显⽰为中⽂,我们可以采⽤Eval⽅法来在页⾯中进⾏数据绑定,这时就需要配合Grid的模板列⼀起来使⽤了:6、要想让我们的GridView⽀持分页,那么我们需要启⽤相关的分页参数:若要启⽤分页功能,需要将AllowPaging属性设置为true。

.NET4.0 GridView概述

.NET4.0  GridView概述

4.0 GridView概述GridView控件旨在解决此限制,并以尽可能少的数据实现双向数据绑定。

该控件与新的数据源控件系列紧密结合,而且只要底层的数据源对象支持,它还可以直接处理数据源更新。

GridView控件为数据源的内容提供了一个表格式的类网格视图。

每一列表示一该基类确保数据绑定和命名容器支持。

ICallbackContainer和ICallbackEventHandler接口提供了比现在支持的更有效的分页和排序功能。

它通过使用新的脚本回调技术的客户端的out-of-band调用来完成。

1.GridView控件的属性GridView支持大量属性,这些属性属于如下几大类:行为、可视化设置、样式、状态和模板。

如表10-2列出了该控件的一些常见属性,表10-3列出了该控件的一些样式及外观属性,表10-4列出了该对象的一些状态属性。

向和排序表达式。

这两个属性都是在用户单击列的标题时由该控件的内置排序机制设置的。

整个排序引擎通过AllowSorting属性来启用或者禁用实现。

设置模板内容。

其中,EmptyDataTemplate属性指示该控件绑定到一个空的数据源时要生成的模板内容。

如果该属性和EmptyDataText属性都设置了,则该属性优先采用。

如果两个属性都没有设置,则把该网格控件绑定到一个空的数据源时不生成该网格。

PagerTemplate属性指示要为分页器生成的模板内容。

该属性覆盖我们可能通过PagerSettings属性做出的任何设置。

GridView旨在利用新的数据源对象模型,并在通过DataSourceID属性绑定到一个数据源控件时效果最佳。

GridView还支持经典的DataSource属性,但是如果那样绑定数据,则其中一些特征(诸如内置的更新或分页)变得不可用。

2.GridView控件的事件在中,控件生命期内的关键操作通过事件进行封装,如分为事件在该操作发生之前激;事件在该操作之后激发。

Asp.net中GridView使用详解

Asp.net中GridView使用详解

中GridView使⽤详解 ------------------------------------------------⽬录-------------------------------------------------1、GridView⽆代码分页排序2、GridView选中,编辑,取消,删除3、GridView正反双向排序4、GridView和下拉菜单DropDownList结合5、GridView和CheckBox结合6、⿏标移到GridView某⼀⾏时改变该⾏的背景⾊⽅法⼀7、⿏标移到GridView某⼀⾏时改变该⾏的背景⾊⽅法⼆8、GridView实现删除时弹出确认对话框9、GridView实现⾃动编号10、GridView实现⾃定义时间货币等字符串格式11、GridView实现⽤“...”代替超长字符串12、GridView⼀般换⾏与强制换⾏13、GridView显⽰隐藏某⼀列14、GridView弹出新页⾯/弹出新窗⼝15、GridView固定表头(不⽤javascript只⽤CSS,2⾏代码,很好⽤)16、GridView合并表头多重表头⽆错完美版(以合并3列3⾏举例)17、GridView突出显⽰某⼀单元格(例如⾦额低于多少,分数不及格等)18、GridView加⼊⾃动求和求平均值⼩计19、GridView数据导⼊Excel/Excel数据读⼊GridView--------------------------------正⽂--------------------------------1.GridView简单代码分页排序:1.AllowSorting设为True,aspx代码中是AllowSorting="True";2.默认1页10条,如果要修改每页条数,修改PageSize即可,在aspx代码中是PageSize="12"。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

4.0 使用GridView控件
在Visual Studio 2010中,用户可以采用可视化的方式为页面插入GridView控件,也可以通过代码的方式插入GridView控件。

1.添加GridView控件
在页面的【设计】视图中选择任意一个段落,然后即可从【工具箱】中选择【GridView控件】,将其插入到页面中,如图10-2所示。

图10-2 插入的GridView控件
2.更改控件外观
通过可视化的方法,可以方便地改变GridView控件的外观,为其应用各种模板样式。

选中GridView控件或将鼠标滑至GridView控件上方,然后即可单击控件右上角的【GridView 任务】按钮,如图10-3所示。

图10-3 单击任务按钮
在弹出的【GridView 任务】菜单中执行【自动套用格式】命令,如图10-4所示。

图10-4 执行【自动套用格式】命令
然后,即可在弹出的【自动套用格式】对话框中选择GridView控件的格式架构,如图10-5所示。

图10-5 选择套用的格式
3.添加数据源
数据绑定控件的最大特点就是允许方便地与数据库中的数据进行绑定,快速显示数据内容。

用同样的方式选择GridView控件,单击其右上角的【GridView 任务】按钮,打开【GridView 任务】菜单。

如果当前的项目已绑定了数据源,则在该菜单中【选择数据源】的菜单中即可显示这些数据源。

否则,开发者可以在【选择数据源】的菜单中选择“<新建数据源>”选项,连接一个新的数据源,如图10-6所示。

图10-6 新建数据源
在弹出的【数据源配置向导】对话框中选择对应的数据源类型,然后即可设置
数据源的编号索引,单击【确定】按钮,如图10-7所示。

图10-7 选择数据源
在弹出的【配置数据源】对话框中单击【新建连接】按钮,建立一个新的数据源连接,如图10-8所示。

图10-8 新建数据源连接
在弹出的【添加连接】对话框中,输入数据库服务器的名称,并选择服务器安全的验证方式,如图10-9所示。

图10-9 设置服务器名和验证方式
在对话框下方选择要添加的数据表,然后单击【测试连接】按钮,如弹出【测试连接成功】的对话框,即可单击【确定】按钮,返回【添加连接】按钮,单击【确定】按钮,确认数据源,如图10-10所示。

图10-10 测试数据源
返回【配置数据源】对话框,然后即可选择已添加的数据源,单击【下一步】按钮,如图10-11所示。

图10-11 选择数据源
在更新的对话框中选择需要导入DataGrid控件的数据列,然后即可生成SQL 语句,单击【下一步】按钮,如图10-12所示。

在更新的对话框中可以单击【测试查询】按钮,对数据库连接进行测试,如图10-13所示。

图10-13 测试查询语句
如连接成功,即可单击【完成】按钮,返回页面的【设计】视图,再次通过GridView控件的【GridView 任务】菜单配置各种选项,完成数据源的添加,如图10-14所示。

图10-14 添加数据源
4.编辑数据列
在GridView类中,允许开发者自行编辑数据列表中的字段,方便地定义字段的显示方式等属性。

首先在【GridView 任务】菜单中选择【编辑列】功能,即可打开【字段】对话框,如图10-15所示。

图10-15 编辑字段
在【字段】的对话框中,分为三个区块,依次包括【可用字段】区块、【选定的字段】区块和【BoundField属性】区块等。

●【可用字段】区块用于显示数据源中所有的可用字段,允许开发者选中其中的字
段,单击【添加】按钮,即可将其插入到GridView控件中。

●【选定的字段】区块用于显示当前已选择的字段,并允许开发者选中这些字段,调
整字段在数据表的先后显示顺序或删除该字段。

●【BoundField属性】区块用于显示当前开发者选定的字段各种属性,例如行为、可
访问性、数据、外观和样式等。

5.添加列
在GridView控件中,开发者除了使用数据源中已包含的数据字段作为控件的列外,还可以另外添加新的数据列,显示其他相关的内容。

在【GridView 任务】菜单中执行【添加新列】命令,然后即可打开【添加字段】对话框,如图10-16所示。

图10-16 添加新的字段
在该对话框中,允许开发者选择要添加的字段类型,然后再根据选定的字段类型显示字段的属性。

其包含以下几种字段,如表10-6所示。

表10-6 添加新字段的类型
在选定字段类型后,即可通过可视化的界面定义字段的各种属性,完成列的添加。

相关文档
最新文档