页面布局:
左半部分:文本框(输入一个日期,如:200801)
右半部分:显示信息,共四列,分别是:日期、星期几、時給曜日、金額
第一、二列是根据文本框中输入的那个日期(年月),
第一列:动态列出这个月的所有天数
第二列:动态得出相应的星期几
第三、四列是根据第一、二列从数据库中抽出数据显示出来。
还有,第一二三列用lalbel显示的,第四列是用textbox显示的。开始想用datagrid和datatable,可研究了好几天,只实现了前两列。请大家帮帮忙,我怎样实现比较好呢?
左半部分:文本框(输入一个日期,如:200801)
右半部分:显示信息,共四列,分别是:日期、星期几、時給曜日、金額
第一、二列是根据文本框中输入的那个日期(年月),
第一列:动态列出这个月的所有天数
第二列:动态得出相应的星期几
第三、四列是根据第一、二列从数据库中抽出数据显示出来。
还有,第一二三列用lalbel显示的,第四列是用textbox显示的。开始想用datagrid和datatable,可研究了好几天,只实现了前两列。请大家帮帮忙,我怎样实现比较好呢?
解决方案 »
- 求一个过滤字符串的方法
- 帮忙解决
- 关于gridview单元格的双击事件问题,等待!
- 发送邮件附件简体中文文件名就出错!
- ------------------如何用IFRAME传数据来判断用户输入的MAIL是否重复---------------------
- 如何将一个Dataset中的数据保存到一个新的数据表中,谢谢!
- 通或上网代理,获取他的IP地址是什么意思。和一般的地址不同吗??
- 想在程序中使这个控件不可用,怎么办??
- vs2005中,怎样插入一个动画?
- 为什么SmartNavigation不能用了??微软专家来看看,因为我是打了.NET Framework SP1 后 不能用的!!
- Session保存值???
- 从Droplistdown和GridView的取值的问题?
{
dataset ds=//select * from table where 日期字段 between 2008-01-01 and 2008-01-30
for(int i=0;i<ds.tables[0].rows.count;i++)
{
label mylabel=e.itme.findcontrol("你的日期label") as label;
textbox textbox1=e.itme.findcontrol("你的日期textbox") as textbox; if(mylabel!=null)
{
if(mylabel.text==ds.table[0].rows[0]["日期"].tostring())
{
textbox1.text=ds.table[0].rows[0]["你的字段"].tostring()
}
}
}
}
第二列根据第一列的日期相应的列出这一天是星期几,如第一行第一列:2008/1/1,第二列第一行:星期二
第三列根据第二列,如果是周六、周末,在数据库中根据周六或周末这天对应的日期,连接三个表得出第三列和第四列的值
还是那样,第一二三列用lalbel显示的,第四列是用textbox显示的。 不知我这样说大家明白没?下午我用datatable在不加任何控件的条件下实现了信息的显示。
但是我不知道该怎么加入lalbel,textbox控件,让信息在控件上显示。请大家再帮帮忙,不明白我的意思的话,请问。谢谢!!
呵呵。
这样用的:
lable.text=datatable1.rows[0][0].tostring();
datatable1表示表名后面的索引是正常的索引,第一个表示行,第二个表示列。00表示第一行第一列的值。依次类推。OK
因为要实现自动列出信息,用datagrid试了好多次,可不行。
只能用datatable来添加行和列,包括列名。
我在网上查没找到在dataTable中可以加入控件的。
代码如下:
string year = this.TextBox1.Text.Trim().Substring(0, 4);
string month =this.TextBox1.Text.Trim().Substring(4);
DateTime current=new DateTime();
current = Convert.ToDateTime(year + "-"+month+"-" + "01");
int daysN = System.DateTime.DaysInMonth(Convert.ToInt32(year), Convert.ToInt32(month));
int WeekDay=Convert.ToInt32(current.DayOfWeek); DataTable dt=new DataTable();
dt.Columns.Add("日付");
dt.Columns.Add("曜日");
dt.Columns.Add("対象時給");
dt.Columns.Add("アップ額");
for (int i=0;i<daysN;i++)
{
int nn=(i+WeekDay)%7;
DataRow dr=dt.NewRow();
dr["日付"]=year+'/'+month+'/'+(i+1); switch(nn)
{
case 0:
dr["曜日"]="日曜";
break;
case 1:
dr["曜日"]="月曜";
break;
case 2:
dr["曜日"]="火曜";
break;
case 3:
dr["曜日"]="水曜";
break;
case 4:
dr["曜日"]="木曜";
break;
case 5:
dr["曜日"]="金曜";
break;
case 6:
dr["曜日"]="土曜";
break;
}
if(dr["曜日"].ToString()=="土曜" || dr["曜日"].ToString()=="日曜")
{
string strSql1="select 名称 from T_M曜日区分 where 曜日区分=(select 曜日区分 from T_Mカレンダー_NEW where 年月日='"+year+"/"+month+"/"+(i+1)+"')";
string strSql="SELECT T_M曜日区分.名称, T_M_HourlyWageUp.HourlyWage FROM T_M_HourlyWageUp INNER JOIN ";
strSql +="T_Mカレンダー_NEW ON T_M_HourlyWageUp.DaysOfTheWeek=T_Mカレンダー_NEW.曜日区分 INNER JOIN ";
strSql +="T_M曜日区分 ON T_Mカレンダー_NEW.曜日区分 = T_M曜日区分.曜日区分 WHERE T_Mカレンダー_NEW.年月日='"+year+"/"+month+"/"+(i+1)+"' and T_M_HourlyWageUp.StoreCD=2";
dr["対象時給"]=DataBaseLink(strSql).Rows[0][0].ToString();
dr["アップ額"]=DataBaseLink(strSql).Rows[0][1].ToString();
}
else
{
dr["対象時給"]="";
dr["アップ額"]="";
}
dt.Rows.Add(dr);
}
DataGrid1.DataSource=dt;
DataGrid1.DataBind();public DataTable DataBaseLink(string strSql)
{
string myconn="server=172.18.1.5;database=dbkintai;uid=sa;pwd=top";
SqlConnection conn=new SqlConnection(myconn); DataSet ds=new DataSet();
SqlDataAdapter sda=new SqlDataAdapter(strSql,conn);
sda.Fill(ds);
return ds.Tables[0];
}我该怎么改才能实现需要的功能呢?
我差不多看懂了你回的方法,试了试,为什么if语句一直不走呢?
是不是一直取不到mylabel?
请这位兄弟在帮帮忙看看。谢谢!!private void DataGrid1_ItemDataBound_1(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
for(int i=0;i <dt.Rows.Count;i++)
{
Label mylabel=e.Item.FindControl("lblDate") as Label;
TextBox txtUpPrice=e.Item.FindControl("txtPrice") as TextBox;
if(mylabel!=null)
{
mylabel.Text=dt.Rows[i][0].ToString();
txtUpPrice.Text=dt.Rows[i+1][3].ToString();
}
}
}