sharepoint中一些gridview的使用方法
Question2:如何向GridView中加入格式化的超链接?
答: step1:在GridView中新建一个模板列。
step2:向新加的模板列中添加一个HyperLink控件。
step3:摄制组HyperLink的NavigateUrl值为'<%#"http://www."+ Eval("city")+".com" %>'>。
最终结果如下,省略数据绑定模块:
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" runat="server" Text="下载" NavigateUrl='<%#"http://www."+ Eval("city")+".com" %>'></asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
解:第三步有两个重要的知识点:第一个、’<%#Eval("x") %>'是前台读取C#后台代码中值得一个方法,假如Eval("x")的值为“baidu.com”,我们需要的值为“www.baidu.com”,我们就需要拼凑出这个值。正确的方法是:’<%#”www.”+Eval("x") %>',其它均会导致编译错误如”www.”+’<%#Eval("x") %>'。第二个、必须在拼凑的网址前面加上“http://”或者“https://”,不然生产的链接为本网页的子目录地址。
Question3:用后台程序生成一个可用的GridView,即用C#在后台初始化一个GridView,我们还可以把它做成dll用在webpart里面。
using System.Drawing;
using System.Configuration;
using System.Web.UI;
public partial class Default2 : System.Web.UI.Page
{
//申明并初始化一个GridView
GridView GridView1 = new GridView();
//定义一个datesorce
SqlDataSource EmployeeList = new SqlDataSource();
protected void Page_Init(object sender, System.EventArgs e)
{
//设置ID
GridView1.ID = "GridView1";
//允许翻页、排序
GridView1.AllowPaging = true;
GridView1.AllowSorting = true;
//禁止自动生成列
GridView1.AutoGenerateColumns = false;
//设置一些样式
GridView1.BackColor = Color.FromArgb(0xDE, 0xBA, 0x84);
GridView1.BorderColor = Color.FromArgb(0xDE, 0xBA, 0x84);
GridView1.BorderStyle = BorderStyle.None;
GridView1.BorderWidth = new Unit("1px");
GridView1.CellPadding = 3;
GridView1.CellSpacing = 3;
GridView1.DataKeyNames = new string[] { "EmployeeID" };
//制定GridView的数据源
GridView1.DataSourceID = "EmployeeList";
//一页可以显示的记录的数目
GridView1.PageSize = 3;
//设置一些样式
GridView1.RowStyle.BackColor = Color.FromArgb(0xFF, 0xF7, 0xE7);
GridView1.RowStyle.ForeColor = Color.FromArgb(0x8C, 0x45, 0x10);
GridView1.SelectedRowStyle.BackColor
= Color.FromArgb(0x73, 0x8A, 0x9C);
GridView1.SelectedRowStyle.Font.Bold = true;
GridView1.SelectedRowStyle.ForeColor = Color.White;
GridView1.PagerStyle.ForeColor = Color.FromArgb(0x8C, 0x45, 0x10);
GridView1.PagerStyle.HorizontalAlign = HorizontalAlign.Center;
GridView1.HeaderStyle.BackColor = Color.FromArgb(0xA5, 0x51, 0x29);
GridView1.HeaderStyle.Font.Bold = true;
GridView1.HeaderStyle.ForeColor = Color.White;
//添加一个编辑事件
GridView1.RowEditing +=
new GridViewEditEventHandler(GridView1_RowEditing);
//添加一个命令列
CommandField cmdColumn = new CommandField();
cmdColumn.ShowDeleteButton = true;
cmdColumn.ShowEditButton = true;
cmdColumn.ShowSelectButton = true;
GridView1.Columns.Add(cmdColumn);
//定义一个数据绑定列(可复用)
BoundField bndColumn = new BoundField();
bndColumn.DataField = "EmployeeID";
bndColumn.HeaderText = "ID";
bndColumn.InsertVisible = false;
bndColumn.ReadOnly = true;
bndColumn.SortExpression = "EmployeeID";
//添加一列
GridView1.Columns.Add(bndColumn);
//重新定义
bndColumn = new BoundField();
bndColumn.DataField = "LastName";
bndColumn.HeaderText = "Last Name";
bndColumn.SortExpression = "LastName";
bndColumn.ControlStyle.Width = new Unit("100px");
//再添加一列
GridView1.Columns.Add(bndColumn);
//重新定义
bndColumn = new BoundField();
bndColumn.DataField = "FirstName";
bndColumn.HeaderText = "First Name";
bndColumn.SortExpression = "FirstName";
//再添加一列
GridView1.Columns.Add(bndColumn);
//重新定义
bndColumn = new BoundField();
bndColumn.DataField = "BirthDate";
bndColumn.HeaderText = "Birth Date";
bndColumn.SortExpression = "BirthDate";
bndColumn.ControlStyle.Width = new Unit("150px");
//再添加一列
GridView1.Columns.Add(bndColumn);
//重新定义
bndColumn = new BoundField();
bndColumn.DataField = "ReportsTo";
bndColumn.HeaderText = "Reports To";
bndColumn.SortExpression = "ReportsTo";
bndColumn.ControlStyle.Width = new Unit("50px");
//再添加一列
GridView1.Columns.Add(bndColumn);
//对SqlDataSource的设置
EmployeeList.ID = "EmployeeList";
EmployeeList.ConnectionString =
ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();
EmployeeList.SelectCommand = "SELECT [EmployeeID], [LastName], "
+ "[FirstName], [BirthDate], [ReportsTo] FROM [Employees]";
EmployeeList.InsertCommand = "INSERT INTO [Employees] ([LastName], "
+ "[FirstName], [BirthDate], [ReportsTo]) "
+ "VALUES (@LastName, @FirstName, @BirthDate, @ReportsTo)";
EmployeeList.UpdateCommand = "UPDATE [Employees] "
+ "SET [LastName] = @LastName, "
+ "[FirstName] = @FirstName, [BirthDate] = @BirthDate, "
+ "[ReportsTo] = @ReportsTo "
+ "WHERE [EmployeeID] = @original_EmployeeID";
EmployeeList.DeleteCommand = "DELETE FROM [Employees] "
+ "WHERE [EmployeeID] = @original_EmployeeID";
EmployeeList.OldValuesParameterFormatString = "original_{0}";
EmployeeList.DeleteParameters.Add(
new Parameter("original_EmployeeID", System.TypeCode.Int32));
EmployeeList.UpdateParameters.Add(
new Parameter("LastName", System.TypeCode.String));
EmployeeList.UpdateParameters.Add(
new Parameter("FirstName", System.TypeCode.String));
EmployeeList.UpdateParameters.Add(
new Parameter("BirthDate", System.TypeCode.DateTime));
EmployeeList.UpdateParameters.Add(
new Parameter("ReportsTo", System.TypeCode.Int32));
EmployeeList.UpdateParameters.Add(
new Parameter("original_EmployeeID", System.TypeCode.Int32));
EmployeeList.InsertParameters.Add(
new Parameter("LastName", System.TypeCode.String));
EmployeeList.InsertParameters.Add(
new Parameter("FirstName", System.TypeCode.String));
EmployeeList.InsertParameters.Add(
new Parameter("BirthDate", System.TypeCode.DateTime));
EmployeeList.InsertParameters.Add(
new Parameter("ReportsTo", System.TypeCode.Int32));
Control frm = this.FindControl("form1");
//将这两个控件添加到form中
frm.Controls.Add(EmployeeList);
frm.Controls.Add(GridView1);
}
//编辑事件
protected void GridView1_RowEditing(
object sender, GridViewEditEventArgs e)
{
System.Diagnostics.Debug.WriteLine("GridView1_RowEditing");
GridView1.SelectedIndex = e.NewEditIndex;
}
}
把GridView整到dll中去,让webpartzone可以使用它,其中包含一个可以绑定到数据库的自定义模板列<sharepoint(有的叫moss有的叫portal,md到底叫啥?)开发者的福音>
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
//将会做一个基于webpart的上传下载控件,由于sharepoint个大垃圾,所有的东西居然都存到数据库中
//真tmd的大垃圾,微软必在sharepoint这个不阴不阳的东西上惨败 ©2008badnewfish
namespace uploadFile
{
/**//// <summary>
/// 一个在webpart中生成GridView的程序,其中包含一个能绑定到数据库的模板列。
/// 不错吧,可能正是你想要的哦©2008badnewfish
/// </summary>
public class view : System.Web.UI.WebControls.WebParts.WebPart
{
private GridView gv = new GridView();
protected override void CreateChildControls()
{
//去数据库取数据,别问我什么是using?©2008badnewfish
using (SqlConnection cn = new SqlConnection())
{
//此处以Northwind数据库为例,服务器默认本机的.\sqlexpress,没有的可以去微软下载。©2008badnewfish
cn.ConnectionString = @"Data Source=.\sqlexpress;Initial Catalog=Northwind;Integrated Security=True";
SqlCommand cmd = new SqlCommand();
cmd.Connection = cn;
cmd.CommandText = "select * from employees";
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataTable dt = new DataTable("employees");
//打开链接 ©2008badnewfish
cn.Open();
//使用数据适配器填充datatable, ©2008badnewfish
sda.Fill(dt);
//申明并初始化模板列 ©2008badnewfish
TemplateField customField = new TemplateField();
customField.ShowHeader = true;
customField.HeaderText = "自定义模板列";
//对模板列中的项进行定义,查查类库定义就会明白,这是一个需要实现接口的类 ©2008badnewfish
customField.ItemTemplate = new GridViewTemplate(DataControlRowType.DataRow, "");
//把这模板列添加到GridView中去 ©2008badnewfish
gv.Columns.Add(customField);
gv.DataSource = dt;
//先要添加RowDataBound事件再执行DataBind()方法 ©2008badnewfish
//此事件用来建立数据项 ©2008badnewfish
gv.RowDataBound += new GridViewRowEventHandler(gv_RowDataBound);
gv.DataBind();
}
//别忘了把GridView添加到webpart中 ©2008badnewfish
this.Controls.Add(gv);
}
//这个事件很重要 ©2008badnewfish
void gv_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
DataRowView gv = (DataRowView)e.Row.DataItem;
Label label1 = (Label)e.Row.FindControl("lb");
//gv.Row["firstname"]就是你想绑定的数据库中的列 ©2008badnewfish
label1.Text = gv.Row["firstname"].ToString();
}
}
}
//此类借鉴网上高人的大作,结构清晰无需太多注释 ©2008badnewfish
public class GridViewTemplate : ITemplate
{
private DataControlRowType templateType;
private string columnName;
public GridViewTemplate(DataControlRowType type, string colname)
{
templateType = type;
columnName = colname;
}
public void InstantiateIn(System.Web.UI.Control container)
{
switch (templateType)
{
case DataControlRowType.Header:
Literal lc = new Literal();
lc.Text = columnName;
container.Controls.Add(lc);
break;
case DataControlRowType.DataRow:
Label lb = new Label();
lb.ID = "lb";
lb.Text = "hear";
container.Controls.Add(lb);
break;
default:
break;
}
}
}
}
Question3:后台实现GridView分页
要点:将GridView数据绑定写到一个独立的方法中
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Data.SqlClient;
public partial class badnewfish : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
private void GridViewDataBind()
{
DataTable dt = new DataTable("badnewfish");
using (SqlConnection cn = new SqlConnection())
{
cn.ConnectionString = @"Data Source=.\sqlexpress;Initial Catalog=Northwind;Integrated Security=True";
SqlCommand cmd = new SqlCommand();
cmd.Connection = cn;
cmd.CommandText = "select * from Orders";
SqlDataAdapter sda = new SqlDataAdapter(cmd);
cn.Open();
sda.Fill(dt);
}
GridView1.DataSource = dt;
GridView1.AllowPaging = true;
GridView1.DataBind();
}
protected void Button1_Click(object sender, EventArgs e)
{
GridViewDataBind();
}
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
GridViewDataBind();
}
}
转载于:https://www.cnblogs.com/ahjxxy/archive/2009/10/15/1583876.html
sharepoint中一些gridview的使用方法相关推荐
- 【初学者指南】在ASP.NET MVC 5中创建GridView
介绍 在这篇文章中,我们将会学习如何在 ASP.NET MVC 中创建一个 gridview,就像 ASP.NET Web 表单中的 gridview 一样.服务器端和客户端有许多可用的第三方库,这些 ...
- 在SQL Server中分页结果的最佳方法是什么
如果您还希望获得结果总数(在进行分页之前),那么在SQL Server 2000.2005.2008.2012中对结果进行分页的最佳方法是(性能明智的)? #1楼 最终, Microsoft SQL ...
- SharePoint中的富文本编辑器控件
在sharepoint中,自带一个html文本编辑器,可以对字体的大小,颜色甚至复制和粘贴都可以.这次做项目我们准备通过spd把这个编辑器放到自定义的aspx页面中.费了很大的力气,终于在博客堂()和 ...
- 【转】SharePoint 中的编程模型
可以通过多种方式开发针对 SharePoint 平台的应用程序.可以基于以下各项将这些应用程序划分下列组中:用于创建应用程序的工具.用于开发应用程序的编程模型.打包和部署应用程序的方法.将应用程序投入 ...
- 【原创】SharePoint中如何判断任务是否已经延期
任务列表可以用来跟踪记录工作任务,同时可以在状态报表中汇总延期任务的情况,来标示任务的整体完成情况,比如存在计划完成时间小于今天的,说明该任务有问题,可以标个红. 实现方法: 在SharePoint中 ...
- 使用ASP.NET 2.0中的GridView控件
在ASP.NET 2.0中,加入了许多新的功能和控件,相比asp.net 1.0/1.1,在各方面都有了很大的提高.其中,在数据控件方面,增加了不少控件,其中的gridview控件功能十分强大.在本文 ...
- SharePoint中在线编辑文档
我一直以为只有在Document Library里面的File才会支持在线编辑.直到今天早上我才发现用IE打开List里面的Attachments也是支持在线编辑的,但前提是必须是IE浏览器.我和我的 ...
- asp.net 中的gridview 之gridview 分页
在web开发中我们通常都会用到asp.net 中的gridview 分页以便更好的展示数据,现在就让我们共同学习一下gridview 分页,这是本人的分页代码,也许不是最简单的,但是可以使用. 1. ...
- ASP.NET 2.0中使用Gridview控件的高级技巧
ASP.NET 2.0中,新增加的gridview控件的确十分强大,弥补了在asp.net 1.1中,使用datagrid控件时的不足之处.因为在asp.net 1.1中,在使用datagrid时,很 ...
最新文章
- 关于JQuery中的ajax请求或者post请求的回调方法中的操作执行或者变量修改没反映的问题...
- ctypealpha php_php ctype函数中文翻译和示例
- MySQL字符集的一个坑
- 趣学python3(37)-合并所有目录及子目录的文本文件为一个文件
- 爬取淘宝商品信息selenium+pyquery+mongodb
- 洛谷 3784(bzoj 4913) [SDOI2017]遗忘的集合——多项式求ln+MTT
- netscreen 25配置外网到内网的Webserver实践
- Angular JS 学习笔记(二)
- Tyvj P1065 津津的储蓄计划
- android person类_骚操作:不重启 JVM,如何替换掉已经加载的类?
- 微信小程序 JavaScript(JS)字符串转gbk(无需下载,无需积分)
- Oracle数据库 | Oracle备份实例
- 使用htps进行,Get请求和post请求
- HTML5+CSS:03优惠券
- html中搜索框提示语,请输入您要搜索的内容(自定义Win10搜索框提示语的技巧)...
- 新型智慧城市的技术诠释
- 【洛谷P4234】最小差值生成树
- MySQL通过frm和idb恢复数据库的方法
- 有没有好用的视频压缩软件?分享几个好用的压缩视频软件
- pythorch 基本学习