| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1226 人关注过本帖
标题:[求助]急:怎么统计DataGrid模板列中Textbox控件中的值
只看楼主 加入收藏
小雪
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2006-4-7
收藏
 问题点数:0 回复次数:7 
[求助]急:怎么统计DataGrid模板列中Textbox控件中的值

请大家帮忙看看,谢谢

WEB层代码:
foreach(DataGridItem item in this.DataGrid1.Items)
{
row = table.NewRow();

row["ProjectID"]= item.Cells[7].Text.Trim();
row["NodeID"] =item.Cells[8].Text.Trim();
row["TS_Rtime"] =((Lion.Data.Library.Calendar)item.Cells[3].Controls[1]).DateTime;
row["WorkTime"] =((TextBox)item.Cells[4].Controls[1]).Text.Trim();
row["OverTime"] =((TextBox)item.Cells[5].Controls[1]).Text.Trim();
row["TS_Comment"] =((TextBox)item.Cells[6].Controls[1]).Text.Trim();
row["Res_ID"] =item.Cells[9].Text.Trim();
// row["EditorID"] =item.Cells[10].Text.Trim();
// row["EditTime"] =item.Cells[11].Text.Trim();//在BIZ层设值

DateTime TS_Rtime=Convert.ToDateTime(row["TS_Rtime"].ToString());
DateTime CurDateTime=System.DateTime.Now;
DateTime PastTime=CurDateTime.AddDays(-7);
float sum1=0;


if(DateTime.Compare(TS_Rtime,PastTime)<0||DateTime.Compare(TS_Rtime,CurDateTime)>0)//判断提交日期是否在七日之内
{

this.RegisterStartupScript("alert","<script>alert('您只能提交此前七日内的工时记录!');</script>");
return;
}
else
{

if((row["WorkTime"].ToString()=="")&&(row["OverTime"].ToString()=="")) //正常工时和加班工时同时为空时不写入数据库
{ }
else
{
tS_Rtime=((Lion.Data.Library.Calendar)item.Cells[3].Controls[1]).DateTime;//定义tS_Rtime

if(row["WorkTime"].ToString()=="")
{
workTime=0;
}
else
{
//workTime=Convert.ToSingle(((TextBox)item.Cells[4].Controls[1]).Text.Trim()); //正常工时累计
sum1+=Convert.ToSingle(((TextBox)item.Cells[4].Controls[1]).Text.Trim()); / /将这一列多行值相加,为什么还是只能返回第一行的值????
workTime=sum1; 将这一列值的总和赋给worktime,传到DAO层做判断
}

if(row["OverTime"].ToString()=="")
{
overTime=0;
}
else
{
overTime=Convert.ToSingle(((TextBox)item.Cells[5].Controls[1]).Text.Trim()); //加班工时累计
}


// if(tS.JudgeWorkWeekend(tS_Rtime)) //判断正常工作的周末
// {
// this.RegisterStartupScript("alert","<script>alert('请按正常工作日提交今天的工时记录!');</script>");
// }
//
// if(tS.JudgeSpecialHoliday(tS_Rtime)) //判断特殊节假日(法定假日和调休周末)
// {
// //this.RegisterStartupScript("alert","<script>alert('请按正常工作日提交今天的工时记录!');</script>");
// overTime=workTime+overTime;
// workTime=0;
// }


if(tS.JudgeWorkingHours(tS_Rtime,workTime,overTime)) //判断工时限制:workTime<=8,overTime<=24,并且workTime+overTime<=24

{
table.Rows.Add(row);
countRows+= 1;
}
else
{
this.RegisterStartupScript("alert","<script>alert('本工时或总工时数已超过正常范围!');</script>");
}
}
}
}

tS.AddTimeSheetsList(table); //传递页面信息


if (countRows==0) //如果workTime,overTime同时为空,给出提示
{
this.RegisterStartupScript("alert","<script>alert('您必须填写正常工时或加班工时信息!');</script>");
}

if(countRows>0)

{
Response.Write("<script language=javascript>alert('保存成功!');</script>");
}
else

{Response.Write("<script language=javascript>alert('保存失败!');</script>");}

BindGrid();

}

对应的BIZ层代码:
public void AddTimeSheetsList(DataTable table)
{
foreach(DataRow row in table.Rows)

{tS.AddTimeSheetsList(Convert.ToInt32(row[0]),Convert.ToInt32(row[1]),Convert.ToDateTime(row[2]),Convert.ToSingle(row[3]),Convert.ToSingle(row[4]),Convert.ToString(row[5]),Convert.ToInt32(row[6]));}

}

DAO层的判断代码
//判断工时限制:workTime<=8,overTime<=24,并且workTime+overTime<=24
public bool JudgeWorkingHours(DateTime tS_Rtime,float workTime,float overTime)
{
float Value1,Value2;
try
{
int day = tS_Rtime.Day;
int mon = tS_Rtime.Month;
int year = tS_Rtime.Year;

string sql1 = "Select isNull(sum(WorkTime),0) From TimeSheets where day(TS_Rtime)= "+day +"and month(TS_Rtime)="+mon +"and year(TS_Rtime)="+year;
Value1 = Convert.ToSingle(DB.ReturnValue(sql1))+ workTime;

string sql2 = "Select isNull(sum(OverTime),0) From TimeSheets where day(TS_Rtime)= "+day +"and month(TS_Rtime)="+mon +"and year(TS_Rtime)="+year;
Value2 = Convert.ToSingle(DB.ReturnValue(sql2))+ overTime;

//判断
if (( Value1 <=8.0) && (Value2 <=24.0)&&(Value1+Value2<=24.0))

{
return(true);
}
else

{

return (false);
}

}

catch
{
return (false);
}
}

搜索更多相关主题的帖子: Textbox DataGrid 控件 模板 row 
2006-04-18 15:54
小笨笨
Rank: 5Rank: 5
等 级:贵宾
威 望:19
帖 子:1169
专家分:0
注 册:2006-4-17
收藏
得分:0 
没有看明白。

欢迎光临我的博客: http://smallfools.blog./default.html
2006-04-18 16:10
小雪
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2006-4-7
收藏
得分:0 
我现在的页面是在DataGrid模板列中嵌套了一个TextBox控件,现在想读取一列TextBox中的多行值相加
使用了sum1+=Convert.ToSingle(((TextBox)item.Cells[4].Controls[1]).Text.Trim());这个语句,但是还是只能获取到第一列的值,不知道怎么回事

2006-04-18 16:22
小笨笨
Rank: 5Rank: 5
等 级:贵宾
威 望:19
帖 子:1169
专家分:0
注 册:2006-4-17
收藏
得分:0 

我的意思是,你获取的只是DataGrid的第一列的值,还是TextBox的第一行的值?


欢迎光临我的博客: http://smallfools.blog./default.html
2006-04-18 16:26
wolfsjian
Rank: 1
等 级:新手上路
帖 子:169
专家分:0
注 册:2006-3-29
收藏
得分:0 
我老大说,上网的时候看到太长的东西,一律跳过不看....
所以,说问题要说到本质....

我是要成为海贼王的男人!!! http://wolfsjian./ebbs
2006-04-18 16:38
小雪
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2006-4-7
收藏
得分:0 
不是说要写得详细吗?

2006-04-18 17:14
water123456
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:3208
专家分:5
注 册:2006-2-21
收藏
得分:0 
sum1+=Convert.ToSingle(((TextBox)item.Cells[4].Controls[1]).Text.Trim());
红色的什么意思,没有看明白?

让我们风风火火的过一生,别平平淡淡过一年。
2006-04-18 17:21
小雪
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2006-4-7
收藏
得分:0 
将sum变量转化为单精度类型,能够将数据存到数据库
但是如果我同时提交多条记录,满足下面这个条件的记录可以存到数据库并显示“保存成功”不符合条件的就直接滤掉了,界面没有给用户任何提示信息
判断工时限制:workTime<=8,overTime<=24,并且workTime+overTime<=24

[此贴子已经被作者于2006-4-18 17:40:15编辑过]


2006-04-18 17:36
快速回复:[求助]急:怎么统计DataGrid模板列中Textbox控件中的值
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027393 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved