求一方法:如何实现在页面上一次输入多条记录,并且是动态的? 用gridview吧.每次根据所填的数字.增加行数.可以直接输入.更新数据库. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 //合法性检测for(int i=0;i<iCount;i++){this.dataGridView1.Rows.Add();} 去孟宪会网站看看,用的是gridview 能详细一点吗,用GRIDVIEW如何实现啊,我是要插入不是显示啊 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="BusTechIndex.aspx.cs" Inherits="Technology_BusTechIndex" %><html xmlns="http://www.w3.org/1999/xhtml" ><head runat="server"> <title>车辆技术指标添加</title> <link href="../App_Themes/blue/style.css" rel="stylesheet" type="text/css" /></head><body> <form id="form1" runat="server"> <div class="officedoc"> <b>车辆技术指标添加</b><br /> <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="true"> </asp:ScriptManager> <br /> <table border="0" cellpadding="0" cellspacing="0" class="officedoc"> <tr> <td style="width: 76px; height: 40px" valign="top"> 指标类型:</td> <td style="height: 40px" valign="top"> <asp:DropDownList ID="ddlIndexSort" runat="server" OnSelectedIndexChanged="ddlIndexSort_SelectedIndexChanged" AutoPostBack="True"> </asp:DropDownList></td> </tr> <tr> <td style="width: 76px" valign="top"> 车型:</td> <td valign="top" > <asp:UpdatePanel ID="upBusType" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true"> <ContentTemplate> <asp:DropDownList ID="ddlBusKind" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddlBusKind_SelectedIndexChanged"> </asp:DropDownList> <asp:DropDownList ID="ddlBusType" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddlBusType_SelectedIndexChanged"> </asp:DropDownList> <br /> <asp:BulletedList ID="blBusType" runat="server" CssClass="officedoc" BackColor="#FFFFC0" BorderColor="Black" BorderStyle="Solid" BorderWidth="1px"> </asp:BulletedList> </ContentTemplate> </asp:UpdatePanel> </td> </tr> </table> <br /> <asp:UpdatePanel runat="server" ID="upMain" ChildrenAsTriggers="false" UpdateMode="Conditional"> <ContentTemplate> <asp:MultiView ID="MultiView1" runat="server" ActiveViewIndex="1"> <asp:View ID="vOther" runat="server"> <table border="0" cellspacing="2" class="ReformList"> <tr> <td align="right" class="officedoc" style="width: 66px"> 时间:</td> <td class="officedoc" style="width: 411px"> <asp:DropDownList ID="ddlBeginYear" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddlBeginYear_SelectedIndexChanged"> </asp:DropDownList>年 <asp:DropDownList ID="ddlBeginMonth" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddlBeginYear_SelectedIndexChanged"> </asp:DropDownList>月 至 <asp:DropDownList ID="ddlBeginYear2" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddlBeginYear_SelectedIndexChanged"> </asp:DropDownList>年 <asp:DropDownList ID="ddlBeginMonth2" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddlBeginYear_SelectedIndexChanged"> </asp:DropDownList>月 </td> </tr> <tr> <td align="right" class="officedoc" style="width: 66px"> 指标值:</td> <td class="officedoc" style="width: 411px"> <asp:TextBox ID="txtIndexValue" runat="server" Width="82px"></asp:TextBox> <asp:Label ID="lbUnit" runat="server"></asp:Label> <asp:LinkButton ID="lbDelIndex" runat="server" CausesValidation="false" OnClick="lbDelIndex_Click">删除指标</asp:LinkButton> <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtIndexValue" Display="Dynamic" ErrorMessage="请输入指标值" Enabled="true"></asp:RequiredFieldValidator> <asp:RangeValidator ID="RangeValidator1" runat="server" ControlToValidate="txtIndexValue" Display="Dynamic" ErrorMessage="指标值必须为数字" MaximumValue="65535" MinimumValue="0" Type="Double"></asp:RangeValidator></td> </tr> </table> </asp:View> <asp:View ID="vPetrol" runat="server"><asp:DropDownList ID="ddlStartYear" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddlStartYear_SelectedIndexChanged"> </asp:DropDownList> 年 <asp:DropDownList ID="ddlStartMonth" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddlStartYear_SelectedIndexChanged"> </asp:DropDownList> 月 到 <asp:DropDownList ID="ddlEndYear" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddlStartYear_SelectedIndexChanged"> </asp:DropDownList> 年 <asp:DropDownList ID="ddlEndMonth" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddlStartYear_SelectedIndexChanged"> </asp:DropDownList> 月<br /> <br /> <asp:UpdatePanel ID="upValue" runat="server"> <ContentTemplate> <asp:Panel ID="pnValue" runat="server" Height="50px"> </asp:Panel> </ContentTemplate> </asp:UpdatePanel> </asp:View> </asp:MultiView><br /> </ContentTemplate> <Triggers> <asp:AsyncPostBackTrigger ControlID="ddlIndexSort" /> </Triggers> </asp:UpdatePanel> <br /> <asp:Button ID="btnAdd" runat="server" CssClass="Button" Height="24px" OnClick="btnAdd_Click" Text="添加" Width="55px" /> <asp:Button ID="btnBack" runat="server" CausesValidation="False" CssClass="Button" Height="24px" Text="返回" Width="55px" PostBackUrl="~/Technology/BusTechIndexList.aspx" /> </div> </form></body></html> /*************************************************** * 模块名称: 车辆技术指标添加 * 创建人: 叶明 * 创建日期: 2007-03-20 * 涉及数据表: BusType,TechIndex,TechIndexSort * 本模块依赖于: Reform.TedabusMIS.BLL.SheetDateComputer模块 * 最后修改人: 叶明 * 最后修改日期: 2007-05-08 * 修改记录: * 叶明 @ 2007-03-21 * 更改日期处理方式,原处理方式为beginDate和 * EndDate由客户分别选定 * 叶明 @ 2007-04-17 * 按照客户要求,油耗指标改为按时间段一次性填写 * 叶明 @ 2007-14-18 * 增加同时添加一类车(例如帕萨特2.0)的技术指标的功能 * 叶明 @ 2007-05-08 * 添加技术指标时,如已存在当前车型的当前指标,则显示出来***************************************************/using System;using System.Data;using System.Data.SqlClient;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using Microsoft.Practices.EnterpriseLibrary.Data; //引用微软企业库using Reform.TedabusMIS.BLL;public partial class Technology_BusTechIndex : System.Web.UI.Page{ Database db = DatabaseFactory.CreateDatabase("TedabusMIS"); protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { BindBusSortList(); //绑定车辆类型下拉框 BindBusTypeList(ddlBusKind.Items[0].Value); //以默认车辆类型绑定车型下拉框 BindBusTypeBulletList(ddlBusType.Items[0].Value); //绑定车辆类型列表 BindDateListValue(); //绑定日期下拉框 BindIndexSort(); //绑定指标种类 } if (ddlIndexSort.SelectedItem.Text == "规定燃油") { AddTextBoxs(); //创建添加燃油指标的文本框 } //GetCurrentIndexValue(); } #region 插入新的技术指标到数据库 /// <summary> /// 插入新的技术指标 /// </summary> /// <returns>返回1,表示插入成功;返回0,表示插入失败</returns> private int InsertTechIndex(string busTypeID) { SheetDateComputer sdc = new SheetDateComputer(ddlBeginYear.SelectedItem.Text, ddlBeginMonth.SelectedItem.Text); SheetDateComputer sdc2 = new SheetDateComputer(ddlBeginYear2.SelectedItem.Text, ddlBeginMonth2.SelectedItem.Text); int result = 0; string sql = "SELECT * FROM TechIndex WHERE IndexNo = " + ddlIndexSort.SelectedValue + " AND BusTypeID = " + busTypeID + " AND (NOT (IndexBeginDate <= '" + sdc.BeginDateString + "' AND IndexEndDate <= '" + sdc.BeginDateString + "')) AND Valid = 1 " + " AND (NOT (IndexBeginDate >= '" + sdc2.EndDateString + "' AND IndexEndDate >= '" + sdc2.EndDateString + "'))"; SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["TedabusMIS"].ToString()); SqlDataAdapter sda = new SqlDataAdapter(sql, conn); SqlCommandBuilder scb = new SqlCommandBuilder(sda); DataSet ds = new DataSet(); sda.Fill(ds); if (ds.Tables[0].Rows.Count > 0) { //ShowMessageBox("已经存在此指标"); return 0; } DataRow row = ds.Tables[0].NewRow(); //指标类型 row["IndexNo"] = int.Parse(ddlIndexSort.SelectedValue); //车辆类型ID row["BusTypeID"] = int.Parse(busTypeID); //开始日期 row["IndexBeginDate"] = sdc.BeginDate; //结束日期 row["IndexEndDate"] = sdc2.EndDate; //指标值 row["IndexValue"] = double.Parse(txtIndexValue.Text); ds.Tables[0].Rows.Add(row); result = sda.Update(ds); return result; } #endregion #region 绑定车辆类型下拉框 /// <summary> /// 绑定车辆类型下拉框 /// <res> /// 涉及数据表:BusType /// </res> /// </summary> private void BindBusSortList() { string sql = "SELECT DISTINCT brandkind FROM BusTypeAlias"; IDataReader reader = db.ExecuteReader(CommandType.Text,sql); ddlBusKind.DataSource = reader; ddlBusKind.DataTextField = "brandkind"; ddlBusKind.DataValueField = "brandkind"; ddlBusKind.DataBind(); } #endregion #region 绑定车型 /// <summary> /// 根据车辆类型绑定车型下拉框 /// </summary> /// <param name="busSort">车辆类型名称</param> private void BindBusTypeList(String busSort) { string sql = "select * from BusTypeAlias where brandkind = '" + busSort + "'"; IDataReader reader = db.ExecuteReader(CommandType.Text, sql); ddlBusType.DataSource = reader; ddlBusType.DataTextField = "AliasName"; ddlBusType.DataValueField = "id"; ddlBusType.DataBind(); } #endregion #region 绑定日期下拉框值 private void BindDateListValue() { //对于年,绑定从去年到十年后的值 for (int i = DateTime.Now.Year - 1; i < DateTime.Now.Year + 11; i++) { ddlBeginYear.Items.Add(i.ToString()); ddlBeginYear2.Items.Add(i.ToString()); ddlStartYear.Items.Add(i.ToString()); ddlEndYear.Items.Add(i.ToString()); } //对于月,绑定1到12 for (int i = 1; i <= 12; i++) { ddlBeginMonth.Items.Add(i.ToString()); ddlBeginMonth2.Items.Add(i.ToString()); ddlStartMonth.Items.Add(i.ToString()); ddlEndMonth.Items.Add(i.ToString()); } //设置默认值 ddlBeginYear.SelectedIndex = ddlBeginYear.Items.IndexOf(ddlBeginYear.Items.FindByValue(DateTime.Now.Year.ToString())); ddlBeginMonth.SelectedIndex = ddlBeginMonth.Items.IndexOf(ddlBeginMonth.Items.FindByValue(DateTime.Now.Month.ToString())); ddlBeginYear2.SelectedIndex = ddlBeginYear.Items.IndexOf(ddlBeginYear.Items.FindByValue(DateTime.Now.AddYears(1).Year.ToString())); ddlBeginMonth2.SelectedIndex = ddlBeginMonth.Items.IndexOf(ddlBeginMonth.Items.FindByValue(DateTime.Now.AddYears(1).Month.ToString())); ddlStartYear.SelectedIndex = ddlBeginYear.Items.IndexOf(ddlBeginYear.Items.FindByValue(DateTime.Now.Year.ToString())); ddlStartMonth.SelectedIndex = ddlBeginMonth.Items.IndexOf(ddlBeginMonth.Items.FindByValue(DateTime.Now.Month.ToString())); ddlEndYear.SelectedIndex = ddlBeginYear.Items.IndexOf(ddlBeginYear.Items.FindByValue(DateTime.Now.AddYears(1).Year.ToString())); ddlEndMonth.SelectedIndex = ddlBeginMonth.Items.IndexOf(ddlBeginMonth.Items.FindByValue(DateTime.Now.AddYears(1).Month.ToString())); } #endregion #region 绑定指标种类 private void BindIndexSort() { string sql = "SELECT * FROM TechIndexSort WHERE valid = 1"; IDataReader reader = db.ExecuteReader(CommandType.Text, sql); while (reader.Read()) { ListItem item = new ListItem(reader["IndexName"].ToString(), reader["IndexNo"].ToString()); item.Attributes.Add("IndexUnit", reader["IndexUnit"].ToString()); ddlIndexSort.Items.Add(item); } } #endregion protected void ddlBusKind_SelectedIndexChanged(object sender, EventArgs e) { BindBusTypeList(ddlBusKind.SelectedValue); BindBusTypeBulletList(ddlBusType.Items[0].Value); //绑定车辆类型列表 GetCurrentIndexValue(); } protected void ddlIndexSort_SelectedIndexChanged(object sender, EventArgs e) { string sql = "SELECT IndexUnit FROM TechIndexSort WHERE IndexNo = " + ddlIndexSort.SelectedValue; string strUnit = db.ExecuteScalar(CommandType.Text, sql).ToString(); lbUnit.Text = strUnit; //根据用户选择的指标类型设定指标添加界面 if (ddlIndexSort.SelectedItem.Text == "规定燃油") { MultiView1.ActiveViewIndex = 1; } else { MultiView1.ActiveViewIndex = 0; } GetCurrentIndexValue(); } protected void btnAdd_Click(object sender, EventArgs e) { if (Page.IsValid) { //获取车辆别名对应的车型 string sql = "SELECT BusTypeID FROM BusTypeMapping WHERE AliasID = " + ddlBusType.SelectedValue; DataSet ds = db.ExecuteDataSet(CommandType.Text, sql); int result = 0; if (ddlIndexSort.SelectedItem.Text == "规定燃油") //燃油指标是一次性填写多条记录 { foreach (DataRow row in ds.Tables[0].Rows) { result += AddPetrolIndex(row["BusTypeID"].ToString()); } if (result == 0) { ShowMessageBox("添加燃油指标失败,您录入的指标可能与现存指标存在冲突。"); } else { ShowMessageBox("成功添加" + result.ToString() + "条燃油指标"); } } else //其他指标是一次添加一条记录 { foreach (DataRow row in ds.Tables[0].Rows) { result += InsertTechIndex(row["BusTypeID"].ToString()); } if (result == 0) { ShowMessageBox("添加" + ddlIndexSort.SelectedItem.Text + "指标失败,您录入的指标可能与现存指标存在冲突。"); } else { ShowMessageBox("成功添加" + result.ToString() + "条" + ddlIndexSort.SelectedItem.Text + "指标"); } } } } #region 添加燃油指标 /// <summary> /// 添加燃油指标 /// </summary> /// <returns>成功添加的记录数</returns> private int AddPetrolIndex(string busTypeID) { int result = 0; SheetDateComputer sdc1 = new SheetDateComputer(ddlStartYear.SelectedValue,ddlStartMonth.SelectedValue); SheetDateComputer sdc2 = new SheetDateComputer(ddlEndYear.SelectedValue,ddlEndMonth.SelectedValue); string sql = "SELECT * FROM TechIndex WHERE IndexNo = " + ddlIndexSort.SelectedValue + " AND BusTypeID = " + busTypeID + "AND IndexBeginDate = '" + sdc1.BeginDateString + "' AND IndexEndDate = '" + sdc2.EndDateString + "' AND Valid = 1"; SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["TedabusMIS"].ToString()); SqlDataAdapter sda = new SqlDataAdapter(sql, conn); SqlCommandBuilder scb = new SqlCommandBuilder(sda); DataSet ds = new DataSet(); sda.Fill(ds); if (ds.Tables[0].Rows.Count > 0) { //ShowMessageBox("您录入的燃油指标和当前指标存在冲突,请核实后重新保存"); return 0; } foreach(object obj in pnValue.Controls) { if (obj is TextBox) { TextBox txtValue = obj as TextBox; if (txtValue.Text != string.Empty) { DataRow row = ds.Tables[0].NewRow(); //指标类型 row["IndexNo"] = int.Parse(ddlIndexSort.SelectedValue); //车辆类型ID row["BusTypeID"] = int.Parse(busTypeID); //日期 string year = txtValue.ID.Substring(3, 4); string month = txtValue.ID.Substring(7); SheetDateComputer sdc = new SheetDateComputer(year, month); //开始日期 row["IndexBeginDate"] = sdc.BeginDate; //结束日期 row["IndexEndDate"] = sdc.EndDate; //指标值 row["IndexValue"] = double.Parse(txtValue.Text); ds.Tables[0].Rows.Add(row); } } } result = sda.Update(ds); return result; } #endregion #region 按照客户选择的时间段,在Panel中创建文本框 /// <summary> /// 按照客户选择的时间段,在Panel中创建文本框 /// </summary> private void AddTextBoxs() { DateTime dt1 = DateTime.Parse(ddlStartYear.SelectedValue + "-" + ddlStartMonth.SelectedValue + "-1"); DateTime dt2 = DateTime.Parse(ddlEndYear.SelectedValue + "-" + ddlEndMonth.SelectedValue + "-1"); pnValue.Controls.Clear(); //添加前先清空Panel中的控件 if (dt2 >= dt1) //如果结束日期比开始日期还小,那就无语了 { for (DateTime dt = dt1; dt <= dt2; dt = dt.AddMonths(1)) { Label lb = new Label(); //放个标示时间的Label,免得客户填错 lb.ID = "lb" + dt.Year.ToString() + dt.Month.ToString(); lb.Text = dt.Year.ToString() + "年" + dt.Month + "月:"; pnValue.Controls.Add(lb); TextBox txt = new TextBox(); //接下来是文本框,名字使用txt开头,后面跟上时间 txt.Width = 50; txt.ID = "txt" + dt.Year.ToString() + dt.Month.ToString(); pnValue.Controls.Add(txt); Literal lt = new Literal(); //为了界面整齐,我每行只显示一条记录 lt.Text = " 百公里升 "; pnValue.Controls.Add(lt); LinkButton lbDel = new LinkButton(); //删除按钮 lbDel.Text = "删除指标"; lbDel.ToolTip = dt.Year.ToString() + dt.Month.ToString(); lbDel.Click += new EventHandler(lbDel_Click); pnValue.Controls.Add(lbDel); Literal lbNewLine = new Literal(); lbNewLine.Text = "</br>"; pnValue.Controls.Add(lbNewLine); } } GetCurrentIndexValue(); } chieftech(【标题党总书记】) 请再帖一下BusTechIndex.aspx.cs的代码吧,谢谢! void lbDel_Click(object sender, EventArgs e) { LinkButton lb = sender as LinkButton; SheetDateComputer sdc = new SheetDateComputer(lb.ToolTip.Substring(0,4),lb.ToolTip.Substring(4)); string sqlDel = "UPDATE TechIndex SET Valid = 0 WHERE IndexNo = " + ddlIndexSort.SelectedValue + " AND BusTypeID IN (SELECT BusTypeID FROM BusTypeMapping WHERE AliasID = " + ddlBusType.SelectedValue + ") AND IndexBeginDate = '" + sdc.BeginDateString + "' AND IndexEndDate = '" + sdc.EndDateString + "' AND Valid = 1"; if (db.ExecuteNonQuery(CommandType.Text, sqlDel) > 0) { ShowMessageBox("该技术指标已删除,您现在可以重新添加了。"); } TextBox tb = pnValue.FindControl("txt" + lb.ToolTip) as TextBox; tb.Text = string.Empty; upMain.Update(); } #endregion #region 在客户端弹出对话框 /// <summary> /// 在客户端显示消息对话框 /// </summary> /// <param name="message">对话框中的文字</param> private void ShowMessageBox(string message) { Page.RegisterStartupScript("msg", "<script language='JavaScript'>alert('" + message + "');</Script>"); } #endregion protected void ddlStartYear_SelectedIndexChanged(object sender, EventArgs e) { AddTextBoxs(); GetCurrentIndexValue(); } protected void ddlBusType_SelectedIndexChanged(object sender, EventArgs e) { //绑定详细车型 BindBusTypeBulletList(ddlBusType.SelectedValue); GetCurrentIndexValue(); } #region 根据用户选择的时间、车型和指标类型,从数据库中检索 /// <summary> /// 根据用户选择的时间、车型和指标类型,从数据库中检索 /// 如果存在对应记录,则显示出来 /// </summary> private void GetCurrentIndexValue() { if (ddlIndexSort.SelectedItem.Text == "规定燃油") //燃油指标是一次添加多个月 { DateTime dt1 = DateTime.Parse(ddlStartYear.SelectedValue + "-" + ddlStartMonth.SelectedValue + "-1"); DateTime dt2 = DateTime.Parse(ddlEndYear.SelectedValue + "-" + ddlEndMonth.SelectedValue + "-1"); if (dt2 >= dt1) //如果结束日期比开始日期还小,那就无语了 { for (DateTime dt = dt1; dt <= dt2; dt = dt.AddMonths(1)) { SheetDateComputer sdc = new SheetDateComputer(dt.Year.ToString(), dt.Month.ToString()); string sqlPetrol = "SELECT IndexValue FROM TechIndex WHERE IndexNo = " + ddlIndexSort.SelectedValue + " AND BusTypeID IN (SELECT BusTypeID FROM BusTypeMapping WHERE AliasID = " + ddlBusType.SelectedValue + ") AND IndexBeginDate = '" + sdc.BeginDateString + "' AND IndexEndDate = '" + sdc.EndDateString + "' AND Valid = 1"; object objPetrol = db.ExecuteScalar(CommandType.Text, sqlPetrol); TextBox tb = pnValue.FindControl("txt" + dt.Year.ToString() + dt.Month.ToString()) as TextBox; if (objPetrol != null) { tb.Text = objPetrol.ToString(); } else { tb.Text = string.Empty; } } } } else //其他指标是一次添加一个月 { SheetDateComputer sdcIndexBegin = new SheetDateComputer(ddlBeginYear.SelectedItem.Text, ddlBeginMonth.SelectedItem.Text); SheetDateComputer sdcIndexEnd = new SheetDateComputer(ddlBeginYear2.SelectedItem.Text, ddlBeginMonth2.SelectedItem.Text); string sqlIndex = "SELECT IndexValue FROM TechIndex WHERE IndexNo = " + ddlIndexSort.SelectedValue + " AND BusTypeID IN (SELECT BusTypeID FROM BusTypeMapping WHERE AliasID = " + ddlBusType.SelectedValue + ") AND IndexBeginDate = '" + sdcIndexBegin.BeginDateString + "' AND IndexEndDate = '" + sdcIndexEnd.EndDateString + "' AND Valid = 1"; object objIndex = db.ExecuteScalar(CommandType.Text, sqlIndex); if (objIndex != null) { txtIndexValue.Text = objIndex.ToString(); } else { txtIndexValue.Text = string.Empty; } } upMain.Update(); } #endregion private void BindBusTypeBulletList(string aliasID) { string sql = "SELECT BrandType FROM BusTypeMapping WHERE AliasID = " + aliasID; IDataReader dr = db.ExecuteReader(CommandType.Text, sql); blBusType.DataSource = dr; blBusType.DataTextField = "BrandType"; blBusType.DataBind(); } protected void ddlBeginYear_SelectedIndexChanged(object sender, EventArgs e) { GetCurrentIndexValue(); } protected void lbDelIndex_Click(object sender, EventArgs e) { SheetDateComputer sdcIndexBegin = new SheetDateComputer(ddlBeginYear.SelectedItem.Text, ddlBeginMonth.SelectedItem.Text); SheetDateComputer sdcIndexEnd = new SheetDateComputer(ddlBeginYear2.SelectedItem.Text, ddlBeginMonth2.SelectedItem.Text); string sqlDel = "UPDATE TechIndex SET Valid = 0 WHERE IndexNo = " + ddlIndexSort.SelectedValue + " AND BusTypeID IN (SELECT BusTypeID FROM BusTypeMapping WHERE AliasID = " + ddlBusType.SelectedValue + ") AND IndexBeginDate = '" + sdcIndexBegin.BeginDateString + "' AND IndexEndDate = '" + sdcIndexEnd.EndDateString + "' AND Valid = 1"; if (db.ExecuteNonQuery(CommandType.Text, sqlDel) > 0) { ShowMessageBox("该技术指标已删除,您现在可以重新添加了。"); } txtIndexValue.Text = string.Empty; upMain.Update(); }} 没有了!大体的思路就是在页面上动态创建输入控件,为避免页面全部刷新,我使用了Ajax你参考一下happy coding! 编译器错误信息: CS0234: 命名空间“Microsoft”中不存在类型或命名空间名称“Practices”(是缺少程序集引用吗?)源错误: 行 32: using System.Web.UI.WebControls.WebParts;行 33: using System.Web.UI.HtmlControls;行 34: using Microsoft.Practices.EnterpriseLibrary.Data; //引用微软企业库行 35: 行 36: using Reform.TedabusMIS.BLL; 如何引用微软企业库? 在线等,如何实现动态的资源帮定。 劳驾帮我完善完善这个类! 转眼又一年了,心情依然如旧,问个母板页的问题,顺便散分! 巨分:求相关网上图书,出版社相关的门户网站源代码或思路分析,开发文档等 谢谢 大家能不能介绍一下广州或者深圳有那些比较好的外资软件企业? 想做个后台新闻管理系统,给点建议好吗 codesmith2.6及注册机 新手求助~~~~~ 请教达人 动态生成一个bitmap后 怎样才能直接使它显示在table的cell对象上??不通过硬盘读写 高分之下,必有勇夫! 急急及 编译没问题,但是在IIS中运行不出来,怎么回事?
for(int i=0;i<iCount;i++)
{
this.dataGridView1.Rows.Add();
}
<head runat="server">
<title>车辆技术指标添加</title>
<link href="../App_Themes/blue/style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<div class="officedoc">
<b>车辆技术指标添加</b><br />
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="true">
</asp:ScriptManager>
<br />
<table border="0" cellpadding="0" cellspacing="0" class="officedoc">
<tr>
<td style="width: 76px; height: 40px" valign="top">
指标类型:</td>
<td style="height: 40px" valign="top">
<asp:DropDownList ID="ddlIndexSort" runat="server" OnSelectedIndexChanged="ddlIndexSort_SelectedIndexChanged" AutoPostBack="True">
</asp:DropDownList></td>
</tr>
<tr>
<td style="width: 76px" valign="top">
车型:</td>
<td valign="top" >
<asp:UpdatePanel ID="upBusType" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true">
<ContentTemplate>
<asp:DropDownList ID="ddlBusKind" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddlBusKind_SelectedIndexChanged">
</asp:DropDownList> <asp:DropDownList ID="ddlBusType" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddlBusType_SelectedIndexChanged">
</asp:DropDownList>
<br />
<asp:BulletedList ID="blBusType" runat="server" CssClass="officedoc" BackColor="#FFFFC0" BorderColor="Black" BorderStyle="Solid" BorderWidth="1px">
</asp:BulletedList>
</ContentTemplate>
</asp:UpdatePanel>
</td>
</tr>
</table>
<br />
<asp:UpdatePanel runat="server" ID="upMain" ChildrenAsTriggers="false" UpdateMode="Conditional">
<ContentTemplate>
<asp:MultiView ID="MultiView1" runat="server" ActiveViewIndex="1">
<asp:View ID="vOther" runat="server">
<table border="0" cellspacing="2" class="ReformList">
<tr>
<td align="right" class="officedoc" style="width: 66px">
时间:</td>
<td class="officedoc" style="width: 411px">
<asp:DropDownList ID="ddlBeginYear" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddlBeginYear_SelectedIndexChanged">
</asp:DropDownList>年
<asp:DropDownList ID="ddlBeginMonth" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddlBeginYear_SelectedIndexChanged">
</asp:DropDownList>月 至
<asp:DropDownList ID="ddlBeginYear2" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddlBeginYear_SelectedIndexChanged">
</asp:DropDownList>年
<asp:DropDownList ID="ddlBeginMonth2" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddlBeginYear_SelectedIndexChanged">
</asp:DropDownList>月 </td>
</tr>
<tr>
<td align="right" class="officedoc" style="width: 66px">
指标值:</td>
<td class="officedoc" style="width: 411px">
<asp:TextBox ID="txtIndexValue" runat="server" Width="82px"></asp:TextBox>
<asp:Label ID="lbUnit" runat="server"></asp:Label> <asp:LinkButton ID="lbDelIndex"
runat="server" CausesValidation="false" OnClick="lbDelIndex_Click">删除指标</asp:LinkButton>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtIndexValue"
Display="Dynamic" ErrorMessage="请输入指标值" Enabled="true"></asp:RequiredFieldValidator>
<asp:RangeValidator ID="RangeValidator1" runat="server" ControlToValidate="txtIndexValue"
Display="Dynamic" ErrorMessage="指标值必须为数字" MaximumValue="65535" MinimumValue="0"
Type="Double"></asp:RangeValidator></td>
</tr>
</table>
</asp:View>
<asp:View ID="vPetrol" runat="server"><asp:DropDownList ID="ddlStartYear" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddlStartYear_SelectedIndexChanged">
</asp:DropDownList>
年 <asp:DropDownList ID="ddlStartMonth" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddlStartYear_SelectedIndexChanged">
</asp:DropDownList>
月 到 <asp:DropDownList ID="ddlEndYear" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddlStartYear_SelectedIndexChanged">
</asp:DropDownList>
年 <asp:DropDownList ID="ddlEndMonth" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddlStartYear_SelectedIndexChanged">
</asp:DropDownList>
月<br />
<br />
<asp:UpdatePanel ID="upValue" runat="server">
<ContentTemplate>
<asp:Panel ID="pnValue" runat="server" Height="50px">
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
</asp:View>
</asp:MultiView><br />
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="ddlIndexSort" />
</Triggers>
</asp:UpdatePanel>
<br />
<asp:Button ID="btnAdd" runat="server" CssClass="Button" Height="24px" OnClick="btnAdd_Click"
Text="添加" Width="55px" />
<asp:Button ID="btnBack" runat="server" CausesValidation="False" CssClass="Button"
Height="24px" Text="返回" Width="55px" PostBackUrl="~/Technology/BusTechIndexList.aspx" />
</div>
</form>
</body>
</html>
* 模块名称: 车辆技术指标添加 * 创建人: 叶明
* 创建日期: 2007-03-20
* 涉及数据表: BusType,TechIndex,TechIndexSort
* 本模块依赖于: Reform.TedabusMIS.BLL.SheetDateComputer模块
* 最后修改人: 叶明
* 最后修改日期: 2007-05-08
* 修改记录:
* 叶明 @ 2007-03-21
* 更改日期处理方式,原处理方式为beginDate和 * EndDate由客户分别选定
* 叶明 @ 2007-04-17
* 按照客户要求,油耗指标改为按时间段一次性填写 * 叶明 @ 2007-14-18
* 增加同时添加一类车(例如帕萨特2.0)的技术指标的功能
* 叶明 @ 2007-05-08
* 添加技术指标时,如已存在当前车型的当前指标,则显示出来
***************************************************/
using System;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Microsoft.Practices.EnterpriseLibrary.Data; //引用微软企业库using Reform.TedabusMIS.BLL;public partial class Technology_BusTechIndex : System.Web.UI.Page
{
Database db = DatabaseFactory.CreateDatabase("TedabusMIS"); protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
BindBusSortList(); //绑定车辆类型下拉框 BindBusTypeList(ddlBusKind.Items[0].Value); //以默认车辆类型绑定车型下拉框
BindBusTypeBulletList(ddlBusType.Items[0].Value); //绑定车辆类型列表
BindDateListValue(); //绑定日期下拉框 BindIndexSort(); //绑定指标种类
}
if (ddlIndexSort.SelectedItem.Text == "规定燃油")
{
AddTextBoxs(); //创建添加燃油指标的文本框
}
//GetCurrentIndexValue();
} #region 插入新的技术指标到数据库 /// <summary>
/// 插入新的技术指标 /// </summary>
/// <returns>返回1,表示插入成功;返回0,表示插入失败</returns>
private int InsertTechIndex(string busTypeID)
{
SheetDateComputer sdc = new SheetDateComputer(ddlBeginYear.SelectedItem.Text, ddlBeginMonth.SelectedItem.Text);
SheetDateComputer sdc2 = new SheetDateComputer(ddlBeginYear2.SelectedItem.Text, ddlBeginMonth2.SelectedItem.Text);
int result = 0;
string sql = "SELECT * FROM TechIndex WHERE IndexNo = " + ddlIndexSort.SelectedValue + " AND BusTypeID = " + busTypeID
+ " AND (NOT (IndexBeginDate <= '" + sdc.BeginDateString + "' AND IndexEndDate <= '" + sdc.BeginDateString + "')) AND Valid = 1 "
+ " AND (NOT (IndexBeginDate >= '" + sdc2.EndDateString + "' AND IndexEndDate >= '" + sdc2.EndDateString + "'))";
SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["TedabusMIS"].ToString());
SqlDataAdapter sda = new SqlDataAdapter(sql, conn);
SqlCommandBuilder scb = new SqlCommandBuilder(sda);
DataSet ds = new DataSet();
sda.Fill(ds);
if (ds.Tables[0].Rows.Count > 0)
{
//ShowMessageBox("已经存在此指标");
return 0;
}
DataRow row = ds.Tables[0].NewRow();
//指标类型
row["IndexNo"] = int.Parse(ddlIndexSort.SelectedValue);
//车辆类型ID
row["BusTypeID"] = int.Parse(busTypeID);
//开始日期
row["IndexBeginDate"] = sdc.BeginDate;
//结束日期
row["IndexEndDate"] = sdc2.EndDate;
//指标值 row["IndexValue"] = double.Parse(txtIndexValue.Text);
ds.Tables[0].Rows.Add(row);
result = sda.Update(ds);
return result;
}
#endregion #region 绑定车辆类型下拉框 /// <summary>
/// 绑定车辆类型下拉框 /// <res>
/// 涉及数据表:BusType
/// </res>
/// </summary>
private void BindBusSortList()
{
string sql = "SELECT DISTINCT brandkind FROM BusTypeAlias";
IDataReader reader = db.ExecuteReader(CommandType.Text,sql);
ddlBusKind.DataSource = reader;
ddlBusKind.DataTextField = "brandkind";
ddlBusKind.DataValueField = "brandkind";
ddlBusKind.DataBind();
}
#endregion #region 绑定车型
/// <summary>
/// 根据车辆类型绑定车型下拉框 /// </summary>
/// <param name="busSort">车辆类型名称</param>
private void BindBusTypeList(String busSort)
{
string sql = "select * from BusTypeAlias where brandkind = '" + busSort + "'";
IDataReader reader = db.ExecuteReader(CommandType.Text, sql);
ddlBusType.DataSource = reader;
ddlBusType.DataTextField = "AliasName";
ddlBusType.DataValueField = "id";
ddlBusType.DataBind();
}
#endregion #region 绑定日期下拉框值 private void BindDateListValue()
{
//对于年,绑定从去年到十年后的值 for (int i = DateTime.Now.Year - 1; i < DateTime.Now.Year + 11; i++)
{
ddlBeginYear.Items.Add(i.ToString());
ddlBeginYear2.Items.Add(i.ToString());
ddlStartYear.Items.Add(i.ToString());
ddlEndYear.Items.Add(i.ToString());
}
//对于月,绑定1到12
for (int i = 1; i <= 12; i++)
{
ddlBeginMonth.Items.Add(i.ToString());
ddlBeginMonth2.Items.Add(i.ToString());
ddlStartMonth.Items.Add(i.ToString());
ddlEndMonth.Items.Add(i.ToString());
} //设置默认值 ddlBeginYear.SelectedIndex = ddlBeginYear.Items.IndexOf(ddlBeginYear.Items.FindByValue(DateTime.Now.Year.ToString()));
ddlBeginMonth.SelectedIndex = ddlBeginMonth.Items.IndexOf(ddlBeginMonth.Items.FindByValue(DateTime.Now.Month.ToString()));
ddlBeginYear2.SelectedIndex = ddlBeginYear.Items.IndexOf(ddlBeginYear.Items.FindByValue(DateTime.Now.AddYears(1).Year.ToString()));
ddlBeginMonth2.SelectedIndex = ddlBeginMonth.Items.IndexOf(ddlBeginMonth.Items.FindByValue(DateTime.Now.AddYears(1).Month.ToString()));
ddlStartYear.SelectedIndex = ddlBeginYear.Items.IndexOf(ddlBeginYear.Items.FindByValue(DateTime.Now.Year.ToString()));
ddlStartMonth.SelectedIndex = ddlBeginMonth.Items.IndexOf(ddlBeginMonth.Items.FindByValue(DateTime.Now.Month.ToString()));
ddlEndYear.SelectedIndex = ddlBeginYear.Items.IndexOf(ddlBeginYear.Items.FindByValue(DateTime.Now.AddYears(1).Year.ToString()));
ddlEndMonth.SelectedIndex = ddlBeginMonth.Items.IndexOf(ddlBeginMonth.Items.FindByValue(DateTime.Now.AddYears(1).Month.ToString()));
}
#endregion #region 绑定指标种类
private void BindIndexSort()
{
string sql = "SELECT * FROM TechIndexSort WHERE valid = 1";
IDataReader reader = db.ExecuteReader(CommandType.Text, sql);
while (reader.Read())
{
ListItem item = new ListItem(reader["IndexName"].ToString(), reader["IndexNo"].ToString());
item.Attributes.Add("IndexUnit", reader["IndexUnit"].ToString());
ddlIndexSort.Items.Add(item);
}
}
#endregion protected void ddlBusKind_SelectedIndexChanged(object sender, EventArgs e)
{
BindBusTypeList(ddlBusKind.SelectedValue);
BindBusTypeBulletList(ddlBusType.Items[0].Value); //绑定车辆类型列表
GetCurrentIndexValue();
}
{
string sql = "SELECT IndexUnit FROM TechIndexSort WHERE IndexNo = " + ddlIndexSort.SelectedValue;
string strUnit = db.ExecuteScalar(CommandType.Text, sql).ToString();
lbUnit.Text = strUnit;
//根据用户选择的指标类型设定指标添加界面 if (ddlIndexSort.SelectedItem.Text == "规定燃油")
{
MultiView1.ActiveViewIndex = 1;
}
else
{
MultiView1.ActiveViewIndex = 0;
} GetCurrentIndexValue();
} protected void btnAdd_Click(object sender, EventArgs e)
{
if (Page.IsValid)
{
//获取车辆别名对应的车型 string sql = "SELECT BusTypeID FROM BusTypeMapping WHERE AliasID = " + ddlBusType.SelectedValue;
DataSet ds = db.ExecuteDataSet(CommandType.Text, sql);
int result = 0;
if (ddlIndexSort.SelectedItem.Text == "规定燃油") //燃油指标是一次性填写多条记录 {
foreach (DataRow row in ds.Tables[0].Rows)
{
result += AddPetrolIndex(row["BusTypeID"].ToString());
}
if (result == 0)
{
ShowMessageBox("添加燃油指标失败,您录入的指标可能与现存指标存在冲突。");
}
else
{
ShowMessageBox("成功添加" + result.ToString() + "条燃油指标");
}
}
else //其他指标是一次添加一条记录 {
foreach (DataRow row in ds.Tables[0].Rows)
{
result += InsertTechIndex(row["BusTypeID"].ToString());
}
if (result == 0)
{
ShowMessageBox("添加" + ddlIndexSort.SelectedItem.Text + "指标失败,您录入的指标可能与现存指标存在冲突。");
}
else
{
ShowMessageBox("成功添加" + result.ToString() + "条" + ddlIndexSort.SelectedItem.Text + "指标");
}
}
}
} #region 添加燃油指标
/// <summary>
/// 添加燃油指标
/// </summary>
/// <returns>成功添加的记录数</returns>
private int AddPetrolIndex(string busTypeID)
{
int result = 0;
SheetDateComputer sdc1 = new SheetDateComputer(ddlStartYear.SelectedValue,ddlStartMonth.SelectedValue);
SheetDateComputer sdc2 = new SheetDateComputer(ddlEndYear.SelectedValue,ddlEndMonth.SelectedValue);
string sql = "SELECT * FROM TechIndex WHERE IndexNo = " + ddlIndexSort.SelectedValue + " AND BusTypeID = " + busTypeID
+ "AND IndexBeginDate = '" + sdc1.BeginDateString + "' AND IndexEndDate = '" + sdc2.EndDateString + "' AND Valid = 1";
SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["TedabusMIS"].ToString());
SqlDataAdapter sda = new SqlDataAdapter(sql, conn);
SqlCommandBuilder scb = new SqlCommandBuilder(sda);
DataSet ds = new DataSet();
sda.Fill(ds);
if (ds.Tables[0].Rows.Count > 0)
{
//ShowMessageBox("您录入的燃油指标和当前指标存在冲突,请核实后重新保存");
return 0;
} foreach(object obj in pnValue.Controls)
{
if (obj is TextBox)
{
TextBox txtValue = obj as TextBox;
if (txtValue.Text != string.Empty)
{
DataRow row = ds.Tables[0].NewRow();
//指标类型
row["IndexNo"] = int.Parse(ddlIndexSort.SelectedValue);
//车辆类型ID
row["BusTypeID"] = int.Parse(busTypeID);
//日期
string year = txtValue.ID.Substring(3, 4);
string month = txtValue.ID.Substring(7);
SheetDateComputer sdc = new SheetDateComputer(year, month);
//开始日期 row["IndexBeginDate"] = sdc.BeginDate;
//结束日期
row["IndexEndDate"] = sdc.EndDate;
//指标值
row["IndexValue"] = double.Parse(txtValue.Text);
ds.Tables[0].Rows.Add(row);
}
}
} result = sda.Update(ds);
return result;
}
#endregion #region 按照客户选择的时间段,在Panel中创建文本框
/// <summary>
/// 按照客户选择的时间段,在Panel中创建文本框
/// </summary>
private void AddTextBoxs()
{
DateTime dt1 = DateTime.Parse(ddlStartYear.SelectedValue + "-" + ddlStartMonth.SelectedValue + "-1");
DateTime dt2 = DateTime.Parse(ddlEndYear.SelectedValue + "-" + ddlEndMonth.SelectedValue + "-1");
pnValue.Controls.Clear(); //添加前先清空Panel中的控件
if (dt2 >= dt1) //如果结束日期比开始日期还小,那就无语了 {
for (DateTime dt = dt1; dt <= dt2; dt = dt.AddMonths(1))
{
Label lb = new Label(); //放个标示时间的Label,免得客户填错 lb.ID = "lb" + dt.Year.ToString() + dt.Month.ToString();
lb.Text = dt.Year.ToString() + "年" + dt.Month + "月:";
pnValue.Controls.Add(lb);
TextBox txt = new TextBox(); //接下来是文本框,名字使用txt开头,后面跟上时间
txt.Width = 50;
txt.ID = "txt" + dt.Year.ToString() + dt.Month.ToString();
pnValue.Controls.Add(txt);
Literal lt = new Literal(); //为了界面整齐,我每行只显示一条记录 lt.Text = " 百公里升 ";
pnValue.Controls.Add(lt);
LinkButton lbDel = new LinkButton(); //删除按钮
lbDel.Text = "删除指标";
lbDel.ToolTip = dt.Year.ToString() + dt.Month.ToString();
lbDel.Click += new EventHandler(lbDel_Click);
pnValue.Controls.Add(lbDel);
Literal lbNewLine = new Literal();
lbNewLine.Text = "</br>";
pnValue.Controls.Add(lbNewLine);
}
} GetCurrentIndexValue();
}
请再帖一下BusTechIndex.aspx.cs的代码吧,谢谢!
{
LinkButton lb = sender as LinkButton;
SheetDateComputer sdc = new SheetDateComputer(lb.ToolTip.Substring(0,4),lb.ToolTip.Substring(4));
string sqlDel = "UPDATE TechIndex SET Valid = 0 WHERE IndexNo = " + ddlIndexSort.SelectedValue +
" AND BusTypeID IN (SELECT BusTypeID FROM BusTypeMapping WHERE AliasID = " + ddlBusType.SelectedValue +
") AND IndexBeginDate = '" + sdc.BeginDateString + "' AND IndexEndDate = '" + sdc.EndDateString + "' AND Valid = 1";
if (db.ExecuteNonQuery(CommandType.Text, sqlDel) > 0)
{
ShowMessageBox("该技术指标已删除,您现在可以重新添加了。");
}
TextBox tb = pnValue.FindControl("txt" + lb.ToolTip) as TextBox;
tb.Text = string.Empty;
upMain.Update();
}
#endregion #region 在客户端弹出对话框 /// <summary>
/// 在客户端显示消息对话框 /// </summary>
/// <param name="message">对话框中的文字</param>
private void ShowMessageBox(string message)
{
Page.RegisterStartupScript("msg", "<script language='JavaScript'>alert('" + message + "');</Script>");
}
#endregion protected void ddlStartYear_SelectedIndexChanged(object sender, EventArgs e)
{
AddTextBoxs();
GetCurrentIndexValue();
}
protected void ddlBusType_SelectedIndexChanged(object sender, EventArgs e)
{
//绑定详细车型
BindBusTypeBulletList(ddlBusType.SelectedValue);
GetCurrentIndexValue();
} #region 根据用户选择的时间、车型和指标类型,从数据库中检索
/// <summary>
/// 根据用户选择的时间、车型和指标类型,从数据库中检索
/// 如果存在对应记录,则显示出来
/// </summary>
private void GetCurrentIndexValue()
{
if (ddlIndexSort.SelectedItem.Text == "规定燃油") //燃油指标是一次添加多个月
{
DateTime dt1 = DateTime.Parse(ddlStartYear.SelectedValue + "-" + ddlStartMonth.SelectedValue + "-1");
DateTime dt2 = DateTime.Parse(ddlEndYear.SelectedValue + "-" + ddlEndMonth.SelectedValue + "-1");
if (dt2 >= dt1) //如果结束日期比开始日期还小,那就无语了
{
for (DateTime dt = dt1; dt <= dt2; dt = dt.AddMonths(1))
{
SheetDateComputer sdc = new SheetDateComputer(dt.Year.ToString(), dt.Month.ToString());
string sqlPetrol = "SELECT IndexValue FROM TechIndex WHERE IndexNo = " + ddlIndexSort.SelectedValue +
" AND BusTypeID IN (SELECT BusTypeID FROM BusTypeMapping WHERE AliasID = " + ddlBusType.SelectedValue +
") AND IndexBeginDate = '" + sdc.BeginDateString + "' AND IndexEndDate = '" + sdc.EndDateString + "' AND Valid = 1";
object objPetrol = db.ExecuteScalar(CommandType.Text, sqlPetrol);
TextBox tb = pnValue.FindControl("txt" + dt.Year.ToString() + dt.Month.ToString()) as TextBox;
if (objPetrol != null)
{
tb.Text = objPetrol.ToString();
}
else
{
tb.Text = string.Empty;
}
}
} }
else //其他指标是一次添加一个月
{
SheetDateComputer sdcIndexBegin = new SheetDateComputer(ddlBeginYear.SelectedItem.Text, ddlBeginMonth.SelectedItem.Text);
SheetDateComputer sdcIndexEnd = new SheetDateComputer(ddlBeginYear2.SelectedItem.Text, ddlBeginMonth2.SelectedItem.Text);
string sqlIndex = "SELECT IndexValue FROM TechIndex WHERE IndexNo = " + ddlIndexSort.SelectedValue +
" AND BusTypeID IN (SELECT BusTypeID FROM BusTypeMapping WHERE AliasID = " + ddlBusType.SelectedValue +
") AND IndexBeginDate = '" + sdcIndexBegin.BeginDateString + "' AND IndexEndDate = '" + sdcIndexEnd.EndDateString + "' AND Valid = 1";
object objIndex = db.ExecuteScalar(CommandType.Text, sqlIndex);
if (objIndex != null)
{
txtIndexValue.Text = objIndex.ToString();
}
else
{
txtIndexValue.Text = string.Empty;
}
}
upMain.Update();
}
#endregion private void BindBusTypeBulletList(string aliasID)
{
string sql = "SELECT BrandType FROM BusTypeMapping WHERE AliasID = " + aliasID;
IDataReader dr = db.ExecuteReader(CommandType.Text, sql);
blBusType.DataSource = dr;
blBusType.DataTextField = "BrandType";
blBusType.DataBind();
}
protected void ddlBeginYear_SelectedIndexChanged(object sender, EventArgs e)
{
GetCurrentIndexValue();
} protected void lbDelIndex_Click(object sender, EventArgs e)
{
SheetDateComputer sdcIndexBegin = new SheetDateComputer(ddlBeginYear.SelectedItem.Text, ddlBeginMonth.SelectedItem.Text);
SheetDateComputer sdcIndexEnd = new SheetDateComputer(ddlBeginYear2.SelectedItem.Text, ddlBeginMonth2.SelectedItem.Text);
string sqlDel = "UPDATE TechIndex SET Valid = 0 WHERE IndexNo = " + ddlIndexSort.SelectedValue +
" AND BusTypeID IN (SELECT BusTypeID FROM BusTypeMapping WHERE AliasID = " + ddlBusType.SelectedValue +
") AND IndexBeginDate = '" + sdcIndexBegin.BeginDateString + "' AND IndexEndDate = '" + sdcIndexEnd.EndDateString + "' AND Valid = 1";
if (db.ExecuteNonQuery(CommandType.Text, sqlDel) > 0)
{
ShowMessageBox("该技术指标已删除,您现在可以重新添加了。");
}
txtIndexValue.Text = string.Empty;
upMain.Update();
}
}
大体的思路就是在页面上动态创建输入控件,为避免页面全部刷新,我使用了Ajax
你参考一下
happy coding!
行 33: using System.Web.UI.HtmlControls;
行 34: using Microsoft.Practices.EnterpriseLibrary.Data; //引用微软企业库
行 35:
行 36: using Reform.TedabusMIS.BLL;
如何引用微软企业库?