`
zqding
  • 浏览: 96370 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

struts2 + hibernate + spring + flexgrid 分页实现

阅读更多

struts2 + hibernate + spring + flexgrid 分页实现:

1、新建工程,添加struts2、hibernate、spring及对应版本必需jar包,要增加的jar文件列表如下:

jars

 

2、修改web.xml的配置:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
	<display-name>SSH Demo</display-name>
	<context-param>
		<param-name>log4jConfigLocation</param-name>
		<param-value>classpath:log4j.properties</param-value>
	</context-param>
	<listener>
		<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
	</listener>
	<!-- 指定spring配置文件,默认从web根目录寻找配置文件,可以通过spring提供的classpath:前缀指定从类路径下寻找 -->
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath:applicationContext*.xml</param-value>
	</context-param>
	<!-- 对Spring容器进行实例化 -->
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	<!-- 编码过滤器(要放在struts2前面配置) -->
	<filter>
		<filter-name>encodeFilter</filter-name>
		<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
		<init-param>
			<param-name>encoding</param-name>
			<param-value>UTF-8</param-value>
		</init-param>
		<init-param>
			<param-name>forceEncoding</param-name>
			<param-value>true</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>encodeFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	<filter>
		<filter-name>struts2</filter-name>
		<!--
			以前老版本用的是这个过滤器
			<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
		-->
		<filter-class>
			org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>struts2</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	<error-page>
		<error-code>404</error-code>
		<location>/WEB-INF/404.jsp</location>
	</error-page>
	<error-page>
		<error-code>500</error-code>
		<location>/WEB-INF/500.jsp</location>
	</error-page>
	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
</web-app>

 

3、在src目录下增加新建一个struts.xml配置文件,其内容如下:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
	<!--当struts.xml配置文件修改后,系统是否重新加载该文件,开发阶段打开此功能  -->
	<constant name="struts.configuration.xml.reload" value="true" />
	<!--
		指定WEB应用的编码集,相当于调用HttpServletRequest.setCharacterEncodint方法,如果使用了velocity或freemarker,它也用于指定输出的编码格式
	-->
	<constant name="struts.i18n.encoding" value="UTF-8" />
	<!-- 指定请求后缀为.action,指定多个请求后缀用逗号分隔 -->
	<constant name="struts.action.extension" value="action" />
	<!--设置浏览器是否缓存静态内容,建议:开发阶段关闭,运行时开启  -->
	<constant name="struts.serve.static.browserCache" value="false" />
	<!--  开发提示:出错时打印更详细的信息-->
	<constant name="struts.devMode" value="true" />
	<!-- 这样配置后就可以再action的name元素中使用“/” -->
	<constant name="struts.enable.SlashesInActionNames" value="true" />
	<constant name="struts.enable.DynamicMethodInvocation" value="false" />
	<!-- 默认的视图主题 -->
	<constant name="struts.ui.theme" value="simple" />
	<!-- 资源文件 -->
	<constant name="struts.custom.i18n.resources" value="native" />
	<!-- Spring负责创建Action实例 -->
	<constant name="struts.objectFactory" value="spring" />
	<package name="ssh" extends="json-default">
		<action name="GetUsersList" class="GetUsersList">
			<result type="json" />
		</action>		
	</package>
</struts>
 

4、在src目录下增加新建一个hibernate.cfg.xml配置文件,其内容如下:

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
	<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
	<property name="connection.url">jdbc:mysql://localhost:3306/test</property>	
	<property name="connection.username">root</property>
	<property name="connection.password">root</property>
	<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
	<property name="myeclipse.connection.profile">com.mysql.jdbc.Driver</property>
	<!--  
	<property name="hbm2ddl.auto">update</property>-->
	<property name="show_sql">true</property>
	<property name="format_sql">true</property>	
	<mapping resource="com/starit/bean/TbUser.hbm.xml" /> 
</session-factory>
</hibernate-configuration>

 

5、在src目录下增加新建一个applicationContext.xml配置文件,其内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="configLocation"
			value="classpath:hibernate.cfg.xml" />
	</bean>
	<bean id="userDAO" class="com.starit.dao.imp.UserDAOImpl"/>
	<bean id="userService" class="com.starit.service.imp.UserServiceImpl">
		<property name="userDAO">
			<ref local="userDAO"/>
		</property>
	</bean>
	<bean id="GetUsersList" class="com.starit.action.GetUsersList">
		<property name="userService">
			<ref local="userService"/>
		</property>
	</bean>
</beans>

 

6、在com/starit/bean/下建立类与表之间的映射关系TbUser.hbm.xml,其内容如下:

 

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.starit.bean">
    <class name="TbUser" table="tb_user" catalog="test">
        <id name="id" type="java.lang.Integer">
            <column name="id" />
            <generator class="native" />
        </id>
        <property name="name" type="java.lang.String">
        	<column name="name" length="20"/>
        </property>
        <property name="gender" type="java.lang.String">
        	<column name="gender" length="6"/>
        </property>
        <property name="age" type="java.lang.Integer">
        	<column name="age"/>
        </property>
        <property name="birthday" type="java.sql.Date">
        	<column name="birthday"/>
        </property>
        <property name="phone" type="java.lang.String">
        	<column name="phone" length="11"/>
        </property>
        <property name="address" type="java.lang.String">
        	<column name="address" length="50"/>
        </property>
        <property name="username" type="java.lang.String">
            <column name="username" length="20" not-null="true" />
        </property>
        <property name="password" type="java.lang.String">
            <column name="password" length="20" not-null="true" />
        </property>
    </class>
</hibernate-mapping>

 

7、配置log4j,log4j.properties,内容如下:

log4j.rootLogger=error,CONSOLE,FILE

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d - %c -%-4r[%t]%-5p%c%x-%m%n


log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=file.log
log4j.appender.FILE.Append=false
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=[framework]  %d - %c -%-4r [%t] %-5p %c %x -%m%n

 

8、下面是实现各层的代码:

 

/**
 * File   : TbUser.java
 * Author : zqding
 * Date   : 2010-7-22
 * Version:
 * Desc   : 	
 */
package com.starit.bean;

import java.io.Serializable;
import java.sql.Date;

public class TbUser implements Serializable {
	private static final long serialVersionUID = 1L;

	private Integer id;

	private String name;

	private String gender;

	private Integer age;

	private Date birthday;

	private String phone;

	private String address;

	private String username;

	private String password;

	public String getAddress() {
		return address;
	}

	public void setAddress(String address) {
		this.address = address;
	}

	public Integer getAge() {
		return age;
	}

	public void setAge(Integer age) {
		this.age = age;
	}

	public Date getBirthday() {
		return birthday;
	}

	public void setBirthday(Date birthday) {
		this.birthday = birthday;
	}

	public String getGender() {
		return gender;
	}

	public void setGender(String gender) {
		this.gender = gender;
	}

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public String getPhone() {
		return phone;
	}

	public void setPhone(String phone) {
		this.phone = phone;
	}

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}
}


/**
 * File   : UserDAO.java
 * Author : zqding
 * Date   : 2010-7-22
 * Version:
 * Desc   : 	
 */
package com.starit.dao;

import java.util.List;

import com.starit.bean.TbUser;
import com.starit.util.Page;

public interface UserDAO {
	public TbUser findByUsernamePassword(String username, String password);

	public Page findByPageNo(int pageNo, int pageSize);
	
	@SuppressWarnings("unchecked")
	public List getAllUsers()throws Exception;
	
	@SuppressWarnings("unchecked")
	public List getUsersByPage(int pageNo,int pageSize)throws Exception;
}


/**
 * File   : UserDAOImpl.java
 * Author : zqding
 * Date   : 2010-7-22
 * Version:
 * Desc   : 	
 */
package com.starit.dao.imp;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;

import com.starit.bean.TbUser;
import com.starit.dao.UserDAO;
import com.starit.util.HibernateSessionFactory;
import com.starit.util.Page;

public class UserDAOImpl implements UserDAO {
	private Session session = HibernateSessionFactory.getSession();

	public Page findByPageNo(int pageNo, int pageSize) {
		Page page = new Page();

		Query query = session.createQuery("select count(*) from TbUser");

		int count = Integer.parseInt(query.uniqueResult().toString());

		query = session.createQuery("from TbUser");
		query.setMaxResults(pageSize);
		query.setFirstResult((pageNo - 1) * pageSize);

		page.setList(query.list());
		page.setTotal(count);
		page.setPageNo(pageNo);
		page.setPageSize(pageSize);

		return page;
	}

	public TbUser findByUsernamePassword(String username, String password) {
		String hql = "from TbUser where username=? and password=?";
		Query query = session.createQuery(hql);
		query.setParameter(0, username);
		query.setParameter(1, password);
		return (TbUser) query.uniqueResult();
	}

	public List getAllUsers() throws Exception {
		String hql = "from TbUser";
		Query query = session.createQuery(hql);
		return query.list();
	}

	public List getUsersByPage(int pageNo,int pageSize) throws Exception {
		String hql = "from TbUser";
		Query query = session.createQuery(hql);
		query.setMaxResults(pageSize);
		query.setFirstResult((pageNo - 1) * pageSize);
		return query.list();
	}
	
	

}


/**
 * File   : UserService.java
 * Author : zqding
 * Date   : 2010-7-22
 * Version:
 * Desc   : 	
 */
package com.starit.service;

import java.util.List;

import com.starit.bean.TbUser;
import com.starit.util.Page;

public interface UserService {
	public TbUser findByUsernamePassword(String username, String password);

	public Page findByPageNo(int pageNo, int pageSize);
	
	@SuppressWarnings("unchecked")
	public List getAllUsers()throws Exception;
	
	@SuppressWarnings("unchecked")
	public List getUsersByPage(int pageNo,int pageSize)throws Exception;
}

/**
 * File   : UserServiceImpl.java
 * Author : zqding
 * Date   : 2010-7-22
 * Version:
 * Desc   : 	
 */
package com.starit.service.imp;

import java.util.List;

import com.starit.bean.TbUser;
import com.starit.dao.UserDAO;
import com.starit.service.UserService;
import com.starit.util.Page;

public class UserServiceImpl implements UserService {
	private UserDAO userDAO;
	
	public UserDAO getUserDAO() {
		return userDAO;
	}

	public void setUserDAO(UserDAO userDAO) {
		this.userDAO = userDAO;
	}

	public Page findByPageNo(int pageNo, int pageSize) {
		return userDAO.findByPageNo(pageNo, pageSize);
	}

	public TbUser findByUsernamePassword(String username, String password) {
		return userDAO.findByUsernamePassword(username, password);
	}

	@SuppressWarnings("unchecked")
	public List getAllUsers() throws Exception {
		
		return userDAO.getAllUsers();
	}

	@SuppressWarnings("unchecked")
	public List getUsersByPage(int pageNo, int pageSize) throws Exception {
		return userDAO.getUsersByPage(pageNo, pageSize);
	}
}

/**
 * File   : Page.java
 * Author : zqding
 * Date   : 2010-7-22
 * Version:
 * Desc   : 	
 */
package com.starit.util;

import java.util.List;

public class Page {
	private int total;

	private int pageSize;

	private int totalPage;

	private int pageNo;

	private int prePage;

	private int nextPage;

	private List list;

	public List getList() {
		return list;
	}

	public void setList(List list) {
		this.list = list;
	}

	public int getNextPage() {
		if (pageNo == totalPage) {
			nextPage = pageNo;
		} else {
			nextPage = pageNo + 1;
		}
		return nextPage;
	}

	public void setNextPage(int nextPage) {
		this.nextPage = nextPage;
	}

	public int getPageNo() {
		return pageNo;
	}

	public void setPageNo(int pageNo) {
		this.pageNo = pageNo;
	}

	public int getPageSize() {
		return pageSize;
	}

	public void setPageSize(int pageSize) {
		this.pageSize = pageSize;
	}

	public int getPrePage() {
		if (pageNo == 1) {
			prePage = pageNo;
		} else {
			prePage = pageNo - 1;
		}
		return prePage;
	}

	public void setPrePage(int prePage) {
		this.prePage = prePage;
	}

	public int getTotal() {
		return total;
	}

	public void setTotal(int total) {
		this.total = total;
	}

	public int getTotalPage() {
		if (total % pageSize == 0) {
			totalPage = total / pageSize;
		} else {
			totalPage = total / pageSize + 1;
		}
		return totalPage;
	}

	public void setTotalPage(int totalPage) {
		this.totalPage = totalPage;
	}
}


/**
 * File   : HibernateSessionFactory.java
 * Author : zqding
 * Date   : 2010-7-22
 * Version:
 * Desc   : 	
 */
package com.starit.util;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class HibernateSessionFactory {
	private static String CONFIG_FILE_LOCATION = "/hibernate.cfg.xml";
	private static final ThreadLocal<Session> threadLocal = new ThreadLocal<Session>();
	private static Configuration configuration = new Configuration();
	private static org.hibernate.SessionFactory sessionFactory;
	private static String configFile = CONFIG_FILE_LOCATION;

	static {
		try {
			configuration.configure(configFile);
			sessionFactory = configuration.buildSessionFactory();
		} catch (Exception e) {
			System.err.println("Error Creating SessionFactory...");
			e.printStackTrace();
		}
	}

	private HibernateSessionFactory() {
	}

	public static Session getSession() throws HibernateException {
		Session session = (Session) threadLocal.get();

		if (session == null || !session.isOpen()) {
			if (sessionFactory == null) {
				rebuildSessionFactory();
			}
			session = (sessionFactory != null) ? sessionFactory.openSession()
					: null;
			threadLocal.set(session);
		}

		return session;
	}

	public static void rebuildSessionFactory() {
		try {
			configuration.configure(configFile);
			sessionFactory = configuration.buildSessionFactory();
		} catch (Exception e) {
			System.err.println("Error Creating SessionFactory...");
			e.printStackTrace();
		}
	}

	public static void closeSession() throws HibernateException {
		Session session = (Session) threadLocal.get();
		threadLocal.set(null);

		if (session != null) {
			session.close();
		}
	}

	public static SessionFactory getSessionFactory() {
		return sessionFactory;
	}

	public static void setConfigFile(String configFile) {
		HibernateSessionFactory.configFile = configFile;
		sessionFactory = null;
	}

	public static Configuration getConfiguration() {
		return configuration;
	}
}

 

9、写flexgrid测试面页:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<meta http-equiv="content-type" content="text/html; charset=utf-8" />
		<title>Flexigrid</title>
		<link rel="stylesheet" type="text/css" href="resources/flexigrid/css/flexigrid/flexigrid.css" />
		<script type="text/javascript" src="resources/js/jquery1.3.2.js"></script>
		<script type="text/javascript" src="resources/flexigrid/flexigrid.js"></script>
		<script type="text/javascript">
			$(document).ready(function(){
				$("#flex1").flexigrid
						(
						{
						url: 'GetUsersList.action',
						dataType: 'json',
						colModel : [
							//{display: '<input type="checkbox" alt="全选" onclick="checkeds(this)">', name : 'getAll', width : 50, sortable : true, align: 'center'},
							{display: '编号', name : 'id', width : 40, sortable : true, align: 'center'},
							{display: '姓名', name : 'name', width : 40, sortable : true, align: 'center'},
							{display: '性别', name : 'gender', width : 180, sortable : true, align: 'left'},
							{display: '年龄', name : 'age', width : 120, sortable : true, align: 'left'},
							{display: '生日', name : 'birthday', width : 130, sortable : true, align: 'left', hide: true},
							{display: '电话', name : 'phone', width : 80, sortable : true, align: 'right'},
							{display: '地址', name : 'address', width : 80, sortable : true, align: 'right'}
							],
						searchitems : [
							{display: '编号', name : 'id'},
							{display: '姓名', name : 'name', isdefault: true}
							],
						sortname: "id",
						sortorder: "asc",
						usepager: true,
						title: '用户列表',
						useRp: true,
						checkbox : true,// 是否要多选框
						rowId : 'id',// 多选框绑定行的id
						rp: 10,
						showTableToggleBtn: true,//折叠
						resizable: true,
						striped: true, //是否显示斑纹效果,默认是奇偶交互的形式
						width: 700,
						height: 255
						}
						);   
				
			});

</script>
	</head>
	<body>
		<h1>
			Flexigrid Example Page
		</h1>
		<br />
		<br />
		<table id="flex1" style="display: none"></table>
		<br />
		<br />
	</body>
</html>

 

10,发布测试,测试结果如下如示:

分享到:
评论
5 楼 pug007 2013-01-18  
您好。请问您是如何保证输出的json是按照
{
"total":111, //数据总数
"page":4, //页码(第几页)
"rows":[
{"id":"1","cell":["a","b","c","e"]},
{"id":"2","cell":["a","b","c","e"]},
{"id":"3","cell":["a","b","c","e"]},
{"id":"4","cell":["a","b","c","e"]},
]}
这个格式的呢?
4 楼 zqding 2011-03-03  
sunnish 写道
好像没有ACTION代码,能贴一下ACTION的代码吗?

/**
* File   : GetUsersList.java
* Author : zqding
* Date   : 2010-7-23
* Version:
* Desc   :
*/
package com.starit.action;

import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.ServletActionContext;
import org.apache.struts2.json.annotations.JSON;

import com.opensymphony.xwork2.ActionSupport;
import com.starit.bean.TbUser;
import com.starit.service.UserService;

public class GetUsersList extends ActionSupport {
private UserService userService;

public Integer getPage() {
return page;
}

public void setPage(Integer page) {
this.page = page;
}

public Integer getTotal() {
return total;
}

public void setTotal(Integer total) {
this.total = total;
}

@JSON(name = "rows")
public List<TbUser> getUserList() {
return userList;
}

public void setUserList(List<TbUser> userList) {
this.userList = userList;
}

public void setUserService(UserService userService) {
this.userService = userService;
}

private Integer page;
private Integer total;

private List<TbUser> userList;

@SuppressWarnings("unchecked")
@Override
public String execute() throws Exception {
try {
HttpServletRequest request = ServletActionContext.getRequest();
int pageNo = Integer.valueOf(request.getParameter("page"));
int pageSize = Integer.valueOf(request.getParameter("rp"));

userList = this.userService.getUsersByPage(pageNo, pageSize);

this.total = this.userService.getAllUsers().size();
this.page = pageNo;
} catch (Exception e) {
e.printStackTrace();
return "error";
}
return SUCCESS;
}

public String deleteUsers() throws Exception {
try {
HttpServletRequest request = ServletActionContext.getRequest();
System.out.println("ids:>><<:" + request.getParameter("ids"));
if (!userService.deleteUserById(request.getParameter("ids"))) {
return "error";
}
} catch (Exception e) {
e.printStackTrace();
return "error";
}
return SUCCESS;
}

}


3 楼 sunnish 2011-03-02  
好像没有ACTION代码,能贴一下ACTION的代码吗?
2 楼 zqding 2010-12-24  
lewter 写道
能把action转换json的格式贴出吗 ?

action转换json的过程是通过配置继承extends="json-default"它来实现的,你可以看一下json-default:
<package name="ssh" extends="json-default">
    <action name="GetUsersList" class="GetUsersList">
        <result type="json" />
    </action>
</package>

struts-plugin.xml:
<struts>
    <package name="json-default" extends="struts-default">
        <result-types>
            <result-type name="json" class="com.googlecode.jsonplugin.JSONResult"/>
        </result-types>
        <interceptors>
            <interceptor name="json" class="com.googlecode.jsonplugin.JSONInterceptor"/>
        </interceptors>
    </package>
</struts>
1 楼 lewter 2010-12-23  
能把action转换json的格式贴出吗 ?

相关推荐

    stuts2+ibatis+jQuery +UI + flexgrid+Json做的一个用户管理界面

    【标题】"stuts2+ibatis+jQuery +UI + flexgrid+Json做的一个用户管理界面"揭示了这个项目是基于一系列技术构建的用户管理系统。接下来,我们将详细探讨这些技术及其在用户管理中的应用。 **Struts2**:Struts2 是...

    flexgrid最新版+实例

    2. **分页示例**:演示如何结合分页控件,实现数据的分页加载和切换。 3. **排序和过滤**:展示如何添加排序和过滤功能,让用户可以根据需求动态调整数据展示。 4. **导入/导出数据**:实例化如何将表格数据导出为...

    Winform分页控件+帮助文档

    通过这个分页控件和配套的帮助文档,开发者可以高效地在Winform应用中实现数据分页功能,提升程序的用户体验,同时减少开发时间和精力。对于那些需要处理大数据集的应用,如报表、表格展示等,这无疑是一个非常实用...

    C1FlexGrid中实现类似Excel单元格计算的功能

    本主题将深入探讨如何在C1FlexGrid中实现类似Excel的单元格计算功能,以便用户可以在网格中进行数据处理和计算。下面我们将详细讨论实现这一功能的关键步骤和涉及的技术点。 首先,理解C1FlexGrid的基本操作是必要...

    C1.Win.C1FlexGrid.2.

    C1.Win.C1FlexGrid.2 是一个专为Windows应用程序设计的强大网格控件,它提供了丰富的功能和灵活性,使得开发者可以轻松地在他们的应用中实现数据的显示和编辑。C1FlexGrid是一款由ComponentOne公司开发的专业级表格...

    通过调用strus2 , Flexgrid 显示数据

    本实例主要讲解如何利用Struts2框架从后台获取数据,并通过Flexgrid展示在前端的表格中,同时实现表格的宽度可调整以及数据的排序功能。Flexgrid是一款功能丰富的JavaScript组件,它可以方便地在Web页面上创建灵活的...

    隐藏FlexGrid的某些行(2KB)

    标题“隐藏FlexGrid的某些行(2KB)”指的是在编程中如何实现对Microsoft FlexGrid控件的特定行进行隐藏的功能。FlexGrid控件是Visual Basic等编程环境中常用的一种多行多列的数据展示控件,类似于电子表格。在这个...

    flexgrid

    FlexGrid 是一个强大的 jQuery 插件,用于在网页中创建响应式、可调整大小的数据网格。这个插件允许开发者以灵活的方式展示数据,提供多种排序、分页和过滤功能,适用于构建复杂的数据驱动的Web应用。jQuery ...

    VB实现FlexGrid列表查询功能.rar

    VB实现FlexGrid列表内容的查询功能,Visual Basic6.0基于FlexGrid的查询演示源码,对FlexGrid列表中的内容实施查询功能,并可设置一些查询选项:区分大小写、全字匹配、搜索方向、由列开始或由行开始等,单元格颜色...

    C1.Win.C1FlexGrid.2.dll

    ComponentOne 2012V3还针对WinForm平台主要控件-FlexGrid和Chart制作了包含了近20万字的中文帮助文档,产品的每一功能进行了细致的介绍并提供示例代码,便于开发人员的学习和使用。 我们借此机会编写 C1FlexGrid 和...

    flexgrid demo

    - **分页**:对于大数据集,FlexGrid 提供了高效的分页功能,以改善用户体验。 - **编辑**:行内编辑模式允许用户直接在网格中修改数据。 - **定制**:支持自定义列模板,允许开发者根据需求调整显示样式和内容。...

    jQuery flexgrid 学习

    在网页开发中,数据展示往往是一个不可或缺的部分,而jQuery flexgrid就是一款强大的网格布局工具,它可以帮助开发者轻松实现复杂的数据表格展示和操作。本文将深入探讨jQuery flexgrid的基本概念、核心功能以及实际...

    flexgrid表格控件jsp版本

    5. **分页**:对于大量数据,FlexGrid支持分页显示,以改善用户体验。 6. **自定义样式**:本版本经过修改,具有较好的界面美观性,意味着开发者可以自定义主题和样式,以符合项目的整体设计风格。 7. **事件处理*...

    C1FlexGrid绘制柱形图

    2. **创建C1DrawDiagram对象**:在代码中实例化C1DrawDiagram,并将其添加到C1FlexGrid的DrawObjects集合中。 3. **设置图表属性**:可以调整C1DrawDiagram的Width、Height、GapWidth等属性,以控制图表的尺寸和...

    FlexGrid自定义列标题

    FlexGrid是一款由ComponentOne提供的网格控件,它提供了丰富的功能,包括多行、多列的数据展示,排序、过滤、分页等操作。同时,FlexGrid支持多种数据源,如数组、数据库等,可以满足各种复杂的数据显示需求。 二、...

    flexgrid滚轮示例

    "flexgrid滚轮示例"是指在使用FlexGrid时,通过鼠标滚轮实现网格内容的滚动效果。在Windows Forms开发中,这种功能能够提升用户交互体验,使用户更方便地浏览大量数据。 在FlexGrid控件中,滚轮事件通常是通过处理`...

    Flexgrid使用教程实例

    Flexgrid不仅支持静态布局,还允许动态调整大小和行列数量,从而实现高度可定制的数据展示。 2. **安装与引用** 要在项目中使用Flexgrid,首先需要下载并安装相关的库,例如ComponentOne的FlexGrid for .NET。安装...

    使用flexgrid

    flexgrid use flexgrid use flexgrid use flexgrid use flexgrid use flexgrid use flexgrid use flexgrid use flexgrid use flexgrid use flexgrid use flexgrid use flexgrid use flexgrid use flexgrid use

    Flexgrid用法

    Flexgrid是一款基于JavaScript的表格组件,它提供了丰富的功能,如排序、分页、过滤、编辑等,可以轻松处理动态数据。它允许开发者自定义列宽、行高,支持多级表头,且兼容多种浏览器,包括IE、Firefox、Chrome等。...

Global site tag (gtag.js) - Google Analytics