利用gridview实现计时消费,有点复杂,谁有好的方法可以讨论一下...
这是前段时间做项目遇到的一个问题,做出来的效果图如下,
由会员id查询出会员来,然后开始计费。然后点击结束消费,传到别的页面,主要就是结束时间和开始时间的一个时间差。
用到的数据表设计视图如下,
为了方便研究,我把aspx的代码和cs的代码全部发上来,主要看的地方有,aspx文件的gridview中的TemplateField属性的设置。cs文件下GridView1_RowCreated事件,GridView1_RowCommand事件。
aspx代码如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="consumeTime.aspx.cs" Inherits="consume_consumeTime" %> <!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" />
<script type="text/javascript" src="../scripts/jquery.min.js"></script>
<script src="../scripts/artDialog4.1.7/artDialog.js?skin=default">function Submit1_onclick() { } </script>
<link type="text/css" rel="stylesheet" href="../inc/skin/default/style.css" />
<title>计时消费</title>
</head>
<script type="text/javascript"> function calc()
{
// mysklp= $.ajax({ url: encodeURI("consumeTime_getsklp.aspx? "), async: false });
$("#mebrid").attr("value", ""+0+""+0+""+0+""+0+""+0+""+0+""+0+""+0+""+0+""+0+"");
//document.getElementById("shuliang").innerHTML=myshuliang.responseText;
//alert("test");
} </script> <body>
<%--<div class="divContentBox">--%> <form runat="server"> <div class="divContentHead">
<img alt="" src="../inc/skin/default/images/ico/coins.png" />
<span style="margin-left:2px;">计时消费</span> </div>
<!--查找-->
<div id=""> <table class="tableStyle" style="width: 100%">
<tr style="color: #333333; background-color: #F7F6F3;">
<td style="text-align:center;">
<asp:Label ID="Label1" runat="server" Text="会员ID"></asp:Label>
<asp:TextBox ID="mebrid" runat="server" ></asp:TextBox>
<label><input type="checkbox" name="sklp" id="sklp" onclick="calc()" />散客令牌</label> <asp:Button ID="Button2" runat="server" Text="开始计费" class="buttonColor" onclick="Button2_Click"
/> </td>
</tr> </table>
</div>
<asp:GridView ID="GridView1" runat="server" DataSourceID="AccessDataSource1"
AllowPaging="True" AutoGenerateColumns="False"
CellPadding="4" DataKeyNames="ID" ForeColor="#333333" GridLines="None"
Width="1300px" AllowSorting="True" onrowcommand="GridView1_RowCommand"
onrowcreated="GridView1_RowCreated"
>
<RowStyle BackColor="#EFF3FB" />
<Columns>
<asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False"
ReadOnly="True" SortExpression="ID" />
<asp:BoundField DataField="mebrId" HeaderText="会员卡号"
SortExpression="mebrId" />
<asp:BoundField DataField="mebrName" HeaderText="会员姓名"
SortExpression="mebrName" />
<asp:BoundField DataField="ksTime" HeaderText="开始时间"
SortExpression="ksTime" />
<asp:BoundField DataField="jsTime" HeaderText="结束时间"
SortExpression="jsTime" />
<asp:BoundField DataField="st" HeaderText="消费状态" SortExpression="st" />
<asp:BoundField DataField="ksCzy" HeaderText="开始操作员" SortExpression="ksCzy" />
<asp:BoundField DataField="jsCzy" HeaderText="结束操作员" SortExpression="jsCzy" />
<asp:TemplateField ShowHeader="False"> <ItemTemplate>
<asp:Button ID="bt" runat="server" CausesValidation="false" CommandName="xfjs" CommandArgument="<%#((GridViewRow)Container).RowIndex%>" Text="消费结束" />
</ItemTemplate> </asp:TemplateField>
</Columns>
<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
<HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<EditRowStyle BackColor="#2461BF" />
<AlternatingRowStyle BackColor="White" />
</asp:GridView> <asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/db/mem.mdb"
SelectCommand="SELECT * FROM [jsxf]">
</asp:AccessDataSource> </form> </div>
</body>
</html>
aspx
cs代码如下:
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
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.Xml.Linq; public partial class consume_consumeTime : System.Web.UI.Page
{ public string SQLStrings = "SELECT * FROM [jsxf] WHERE 1=1";//查找语句 如果为空则忽略此值
public string czy;
public string mid="";
public string memname="" ;
public Common.MBERINFO meminfo;
// public string Sql1, sql1;
//public string b;//一列遍历
public TimeSpan dd;//保存计算时间
public string aa,bb,PostPS,hh ;//会员卡号,消费状态,传送备注,开始时间
public DateTime ksTime, jsTime;//定义开始时间和结束时间
string Dp; protected void ShowList(string strSql) //显示列表
{
AccessDataSource1.DataFile = MemData.ClassData.DataFilePath;
AccessDataSource1.SelectCommand = strSql;
GridView1.DataSourceID = "AccessDataSource1";
}
string Czy;
protected void Showlist(string strSQL)//显示列表
{
AccessDataSource1.DataFile = MemData.ClassData.DataFilePath;
AccessDataSource1.SelectCommand = strSQL;
GridView1.DataSourceID = "AccessDataSource1"; } protected void Page_Load(object sender, EventArgs e)
{ if (null == Session[Common.ClassCommon.NowAdmin] || "" == Session[Common.ClassCommon.NowAdmin].ToString())
{
Response.Write("<script language='javascript'>alert('请先登录!');</script>");
Response.Write("<script language='javascript'>window.location.href='../Default.aspx';</script>"); }
else
{
if (MemData.ClassData.IsCzyHasRight("计时消费") == false)
{
Response.Write("<script language='javascript'>alert('您没有查看此页面的权限!');</script>");
Response.Write("<script language='javascript'>window.location.href='../startpage.aspx';</script>");
}
} SQLStrings = "SELECT * FROM [jsxf] WHERE ( 1=1 "; //判断id条件
if (mebrid.Text != "")
{
string idstr = mebrid.Text.ToString();
SQLStrings += "AND [mebrId] = '" + idstr + "'"; }
SQLStrings += ")order by ID DESC"; ShowList(SQLStrings);
} //绑定行列号
protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
Button bt = e.Row.FindControl("bt") as Button;
bt.CommandArgument = e.Row.RowIndex.ToString(); }
} //点击开始消费按钮
protected void Button2_Click(object sender, EventArgs e) {
if (null != Request["mebrid"])//获取输入id
mid = Request["mebrid"]; memname = MemData.ClassData.GetMemName(mid);//获取会员名称 meminfo=MemData.ClassData.GetMberInfoByID(mid);//有id获取会员信息 if (mid != meminfo.MberID)
{
Response.Write("<script language='javascript'>alert('指定的会员不存在!');history.go(-1);</script>");
Response.End();
} SQLStrings = "SELECT * FROM [jsxf] WHERE ( 1=1 "; //判断id条件
if (mebrid.Text != "")
{
string idstr = mebrid.Text.ToString();
SQLStrings += "AND [mebrId] = '" + idstr + "'"; }
SQLStrings += ")order by ID DESC"; if ("" != mid) //如果输入卡号不为空
{ czy = MemData.ClassData.GetNowCzy(); string strSql = "insert into jsxf (mebrId,mebrName,ksTime,jsTime,st,ksCzy,jsCzy) values ( '" + mid + "','" + memname + "','" + DateTime.Now.ToString() + "','" + DateTime.Today.ToString() + "','" + "正在消费" + "','" + czy + "','" + "" + "' ) "; int r9 = MemData.ClassData.ExecSql(strSql);
if (- == r9 || - == r9)
Response.Write("<script language='javascript'>alert('系统异常!');history.go(-1);</script>"); } ShowList(SQLStrings);//显示列表 } protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{ if (null != Request["mebrid"])//获取输入id
mid = Request["mebrid"]; memname = MemData.ClassData.GetMemName(mid);//获取会员名称 meminfo = MemData.ClassData.GetMberInfoByID(mid);//有id获取会员信息 if (e.CommandName == "xfjs")//buttonCommandName
{
int index = Convert.ToInt32(e.CommandArgument); aa = GridView1.Rows[index].Cells[].Text.ToString();//会员id
bb = GridView1.Rows[index].Cells[].Text.ToString();//消费状态 czy = MemData.ClassData.GetNowCzy(); string Sql1 = "update jsxf set jsTime='" + DateTime.Now.ToString() + "'where mebrId='" + aa + "' and st = '" + "正在消费" + "'";
string sql1 = "update jsxf set jsCzy='" + czy + "'where mebrId='" + aa + "' and st = '" + "正在消费" + "'";
string sQl1 = "update jsxf set st='" + "结束消费" + "'where mebrId='" + aa + "' and st = '" + "正在消费" + "'"; int r3 = MemData.ClassData.ExecSql(sql1);
if (- == r3 || - == r3)
Response.Write("<script language='javascript'>alert('系统异常!');history.go(-1);</script>"); int r4 = MemData.ClassData.ExecSql(Sql1);
if (- == r4 || - == r4)
Response.Write("<script language='javascript'>alert('系统异常!');history.go(-1);</script>"); int r6 = MemData.ClassData.ExecSql(sQl1);
if (- == r6 || - == r6)
Response.Write("<script language='javascript'>alert('系统异常!');history.go(-1);</script>"); SQLStrings = "SELECT * FROM [jsxf] WHERE ( 1=1 "; //判断id条件
if (mebrid.Text != "")
{
string idstr = mebrid.Text.ToString();
SQLStrings += "AND [mebrId] = '" + idstr + "'"; }
SQLStrings += ")order by ID DESC"; ShowList(SQLStrings); if (bb != "'" + "正在消费" + "'")//判断消费状态
{ hh = GridView1.Rows[index].Cells[].Text.ToString();//开始时间 string jstime = DateTime.Now.ToString();//获取当前 结束消费 按下时间
DateTime s2 = Convert.ToDateTime(jstime);
string t1 = hh;
//string t2 = jstime; DateTime s1 = DateTime.Parse(t1);
// DateTime s2 = DateTime.Parse(t2); dd = s2.Subtract(s1); //当前时间减去开始时间 PostPS = "会员ID:" + aa + ",会员姓名:" + memname.ToString() + ",消费时间:" + dd.ToString() + "";//传递PS,传到另一个页面进行计算 Response.Redirect("fastConsume.aspx?PostID="+mid+"&PostPS="+PostPS+"&suc=no"); } }
} //protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
//{
// if (e.Row.RowType == DataControlRowType.DataRow)
// {
// Button bt = new Button();
// bt = (Button)e.Row.Cells[1].FindControl("bt");
// bt.CommandArgument = e.Row.RowIndex.ToString(); // } //} }
cs
利用gridview实现计时消费,有点复杂,谁有好的方法可以讨论一下...的更多相关文章
- spring cloud(服务消费者(利用ribbon实现服务消费及负载均衡)——初学二)
Ribbon是一个基于HTTP和TCP客户端的负载均衡器,利用ribbon实现服务消费,并实现客户端的负载均衡. 一.准备工作(利用上一节的内容) 启动服务注册中心 启动computer-servic ...
- universal image loader在listview/gridview中滚动时重复加载图片的问题及解决方法
在listview/gridview中使用UIL来display每个item的图片,当图片数量较多需要滑动滚动时会出现卡顿,而且加载过的图片再次上翻后依然会重复加载(显示设置好的加载中图片) 最近在使 ...
- 利用SQL查询扶贫对象医保报销比率的审计方法
利用SQL查询扶贫对象医保报销比率的审计方法 扶贫资金惠及贫困百姓的切身利益,主管部门多,资金实行逐级下拨,并且扶贫项目小而分散,主要在乡镇和农村实施.根据湖北省审计厅关于2017年扶贫审计工作方案的 ...
- Asp.Net 操作XML文件的增删改查 利用GridView
不废话,直接上如何利用Asp.NET操作XML文件,并对其属性进行修改,刚开始的时候,是打算使用JS来控制生成XML文件的,但是最后却是无法创建文件,读取文件则没有使用了 index.aspx 文件 ...
- spring cloud(服务消费者(利用feign实现服务消费及负载均衡)——初学三)
Feign是一个声明式的Web Service客户端,我们只需要使用Feign来创建一个接口并用注解来配置它既可完成. 它具备可插拔的注解支持,包括Feign注解和JAX-RS注解.Feign也支持可 ...
- 利用GridView实现单选效果
1.实现如图所示的单选效果 由于Android提供的单选按钮radiobutton只能单行或单列显示,且样式并不美观,故可用GridView进行改造,实现单选效果,而要实现这样的效果重点就在GridV ...
- [Python爬虫] 之三十一:Selenium +phantomjs 利用 pyquery抓取消费主张信息
一.介绍 本例子用Selenium +phantomjs爬取央视栏目(http://search.cctv.com/search.php?qtext=消费主张&type=video)的信息(标 ...
- Flutter利用GridView实现网格的商品布局
GridView.count 生成的是静态网格 效果: 代码: import 'package:flutter/material.dart'; void main() { runApp(MyApp() ...
- 利用GridView控件导出其他文件(导出Excel,导出Word文件)
原文发布时间为:2008-10-16 -- 来源于本人的百度文章 [由搬家工具导入] // 注意,在Visual Studio2005平台下,如果使用GridView导出文件, //就必须重 ...
随机推荐
- Oracle学习笔记(2)——过程和函数
过程和函数统称为PL/SQL子程序,通过输入.输出参数或输入/输出参数与其调用者交换信息.他们是被命名的PL/SQL块,被编译后存储在数据库中,以备执行.因此,可以在数据库中直接按名称使用它们. 1. ...
- Redux中的重要概念
Action/Reducer/Store 首先,先看看第一张图,图中展示了Redux的单向数据流,以及Action.Reducer和Store这三个核心概念. 下面就围绕上图,非别介绍Action.R ...
- pl_sql 报ora-12154 无法解析指定的连接标识符的问题
情况一:连接本地的没有问题,连接远程服务器的时候报以上错误.那么在本地客户端下的TNSNames.ora设置中配置你的远程服务器连接,本人的如下: //mestest是远程服务器名 //172.18. ...
- Java学习——继承
将学生工人的共性描述提取出来,单独进行描述,只要让学生和工人与单独描述的这个类有关系,就可以了. 继承:1,提高了代码的复用性.2,让类与类之间产生了关系.有了这个关系,才有了多态的特性. 注意:千万 ...
- Android开发_关于点击事件
为了防止用户或者测试MM疯狂的点击某个button: 创建一个工具类 public class Tools { private static long lastClickTime; public st ...
- iOS中json解析出现的null,nil,NSNumber的问题
在iOS开发过程中经常需要与服务器进行数据通讯,Json就是一种常用的高效简洁的数据格式. 问题现象 但是几个项目下来一直遇到一个坑爹的问题,程序在获取某些数据之后莫名崩溃.其实很早就发现了原因:由于 ...
- C#创建Windows服务与安装-图解
1.创建windows服务项目
- ng事件中为变量的参数
之前学习Angular时碰到过这种问题,绑定事件中传参为变量的问题. 举个例子吧,比如有这么一段代码: <button type='button' ng-click="showMsg( ...
- SurfaceView的补充
1.什么时候使用:当自定义View需要频繁刷新,或者刷新数据比较大的时候,建议使用SurfaceView取代使用View 2.继承SurfaceView的并重写的步骤:①.继承SurfaceView类 ...
- 在VMware中为CentOS配置静态ip并可访问网络-Windows下的VMware
在VMware中为CentOS配置静态ip并可访问网络-Windows下的VMware 首先确保虚拟网卡(VMware Network Adapter VMnet8)是开启的,然后在windows的命 ...