各位大哥大姐,江湖救急!
1.现有字段为 name,price,discount,number,subtotal 的DataGrid dgCart;
数据从SQL2000->DataTable->DataGrid;
DataTable和DataGrid是动态编写,
DataTable的结构:
myDt.Columns.Add(new DataColumn("Name",str.GetType())); //str是空串
myDt.Columns.Add(new DataColumn("Price",str.GetType()));
myDt.Columns.Add(new DataColumn("Discount",str.GetType()));
DataGrid的创建:
//属性添加
........;
TemplateColumn name=new TemplateColumn(); //添加模板列
//构造方法中加入字段名,literal控件中导入的是Name字段的数据
name.ItemTemplate=new ColumnTemplateLiteral("Name");
name.HeaderText="商品名";
name.ItemStyle.Width=160;
dgCart.Columns.Add(name);
........; //其他字段模板列添加
Page.Controls[1].Controls.Add(dgCart); //page加载DataGrid
........; //相关模板列类;?现调试通过name,price,discount三个,还有number,subtotal,
number 是TextBox控件,subtotal为literal控件, 但他们不从数据库读数据,
我想绑定TextBox的TextChanged事件,当number[TextBox]模板列的的Text变动时
,literal的文本自动变化为double.prase(number.toString())*double.prase(discount.toString())
上表达式是大概意思,numberTextBox有初始值"1",当用户填入的不为int型是还原为TextBox原有的
int数据,我现已经逻辑混乱,不知如何下手,谜茫中....2.现有页面,结构为
frameLeft | frameContent
TreeView | 根据TreeNode显示的页面
功能已通过,但是出现问题,当我的节点点点击次数多了后,
报错: 无法显示网页
目前访问网站的用户过多。
这似乎说明着frameContent中先前的内容没有关掉[猜的],
?怎样消除这个问题
?缓存可以吗
大家拉我一把,先放在上面了
1.现有字段为 name,price,discount,number,subtotal 的DataGrid dgCart;
数据从SQL2000->DataTable->DataGrid;
DataTable和DataGrid是动态编写,
DataTable的结构:
myDt.Columns.Add(new DataColumn("Name",str.GetType())); //str是空串
myDt.Columns.Add(new DataColumn("Price",str.GetType()));
myDt.Columns.Add(new DataColumn("Discount",str.GetType()));
DataGrid的创建:
//属性添加
........;
TemplateColumn name=new TemplateColumn(); //添加模板列
//构造方法中加入字段名,literal控件中导入的是Name字段的数据
name.ItemTemplate=new ColumnTemplateLiteral("Name");
name.HeaderText="商品名";
name.ItemStyle.Width=160;
dgCart.Columns.Add(name);
........; //其他字段模板列添加
Page.Controls[1].Controls.Add(dgCart); //page加载DataGrid
........; //相关模板列类;?现调试通过name,price,discount三个,还有number,subtotal,
number 是TextBox控件,subtotal为literal控件, 但他们不从数据库读数据,
我想绑定TextBox的TextChanged事件,当number[TextBox]模板列的的Text变动时
,literal的文本自动变化为double.prase(number.toString())*double.prase(discount.toString())
上表达式是大概意思,numberTextBox有初始值"1",当用户填入的不为int型是还原为TextBox原有的
int数据,我现已经逻辑混乱,不知如何下手,谜茫中....2.现有页面,结构为
frameLeft | frameContent
TreeView | 根据TreeNode显示的页面
功能已通过,但是出现问题,当我的节点点点击次数多了后,
报错: 无法显示网页
目前访问网站的用户过多。
这似乎说明着frameContent中先前的内容没有关掉[猜的],
?怎样消除这个问题
?缓存可以吗
大家拉我一把,先放在上面了
目前访问网站的用户过多。
这似乎说明着frameContent中先前的内容没有关掉[猜的],
——————————————————————————————————————————
如果这是在xp上,那么是正常的。只要你的Web服务器是运行的windows server,就没有问题。不用管它。只是调试时确实麻烦,所以我建议开发人员应该装windows 2000 server或者windows 2003。
还想问哈楼上的大侠,在DataGrid中做一个TextBox列,想绑定TextBox的TextChanged事件,当number[TextBox]模板列的的Text变动时,小记列[literal类型]的文本自动变化为 数量*单价
是动态发往客户端的DataGrid,实现这个功能的模板列怎么写?
又碰到问题了,最后的问题,头昏N天了,
用户放入购物车的商品由cookie中写入读出,
将所选商品数量也加入cookie中,功能实现了,
自己编写了对购物车的绑定,,但是
在对购物车编辑时,更新按钮被点击后,不能马上实现
小记[数量*单价]的刷新,而非要等点击cancel按钮,
或者到下一次编辑[编辑其他项也可]才刷新,怎么解决??
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;namespace BookShop
{
/// <summary>
/// AddToCart 的摘要说明。
/// </summary>
public class AddToCart : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid dg_Cart;
protected System.Web.UI.WebControls.HyperLink hl_Exit;
protected System.Web.UI.WebControls.Button btn_CleanCart;
protected System.Web.UI.WebControls.Button btn_PutOrder;
protected System.Web.UI.WebControls.Literal ErrMsg;
protected System.Web.UI.WebControls.Label Label1;
//protected System.Web.UI.WebControls.CheckBox ckbAll;
Hugo.Book myBook=new Hugo.Book();
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
int BookId;
HttpCookie cookie;
bool tempbl=false;
ErrMsg.Visible =false;
string tempstr;
if(!IsPostBack)
{
if(Object.Equals(Session["UserName"],null))
{
Response.Redirect("Error.aspx");
}
else
{
if(!Object.Equals(Request.QueryString["BookId"],null))
{
BookId=int.Parse(Request.QueryString["BookId"].ToString());
if(Object.Equals(Request.Cookies["HugoShopBookCart"],null))
{
cookie = new HttpCookie("HugoShopBookCart");
}
else
cookie=Request.Cookies["HugoShopBookCart"];
for(int i=0;i<cookie.Values.Count;i++)
{
if(!Object.Equals(cookie.Values.AllKeys[i],null))
{
tempstr=cookie.Values.AllKeys[i].ToString();
if(tempstr.Trim()!="")
{
if(BookId==int.Parse(cookie.Values.AllKeys[i]))
{
tempbl=true;
break;
}
}
}
}
if(!tempbl)
{
cookie.Values.Add(BookId.ToString(),"1");
}
else
{
ShowErrMsg("Cart Have This Book,Please Change It's Number.");
}
TimeSpan ts = new TimeSpan(0,10,0,0);
cookie.Expires=DateTime.Now + ts;
Response.AppendCookie(cookie);
}
string url;
try
{
url=Request.QueryString["Backurl"].ToString();
hl_Exit.NavigateUrl=url;
}
catch
{
hl_Exit.NavigateUrl="main.aspx" ;
}
BindGrid(0);
}
}
} #region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.dg_Cart.CancelCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.dg_Cart_CancelCommand);
this.dg_Cart.EditCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.dg_Cart_EditCommand);
this.dg_Cart.UpdateCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.dg_Cart_UpdateCommand);
this.btn_CleanCart.Click += new System.EventHandler(this.btn_CleanCart_Click);
this.btn_PutOrder.Click += new System.EventHandler(this.btn_PutOrder_Click);
//this.ckbAll.CheckedChanged+=new System.EventHandler(this.AllSelect);
this.Load += new System.EventHandler(this.Page_Load); }
#endregion
/// <summary>
/// Push Dialog,Show error message
/// </summary>
/// <param name="err">Error Message Detail</param>
private void ShowErrMsg(string err)
{
string str;
str="<script language='javascript'>";
str+=" alert('" +err + "')";
str+="</script>";
ErrMsg.Visible=true;
ErrMsg.Text=str;
}
private void BindGrid( int state)
{
DataTable myDt;
DataRow myDr;
string str="";
//HttpCookie cookie;
myDt=new DataTable();
myDt.Columns.Add(new DataColumn("id",str.GetType()));
myDt.Columns.Add(new DataColumn("Name",str.GetType()));
myDt.Columns.Add(new DataColumn("Price",str.GetType()));
myDt.Columns.Add(new DataColumn("Number",str.GetType()));
myDt.Columns.Add(new DataColumn("Discount",str.GetType()));
myDt.Columns.Add(new DataColumn("Totle",str.GetType()));
if(!Object.Equals(Request.Cookies["HugoShopBookCart"],null))
{
HttpCookie cookie=Request.Cookies["HugoShopBookCart"];
for(int i=0;i<cookie.Values.Count;i++)
{
int id;
DataRow tempDr;
double totle;
myDr=myDt.NewRow();
if((cookie.Values.AllKeys[i]!="")&&(cookie.Values[i]!=""))
{
id=int.Parse(cookie.Values.AllKeys[i]);
tempDr=myBook.GetBookDetail(id);
myDr[0]=id;
myDr[1]=tempDr["Name"];
myDr[2]=tempDr["Price"].ToString();
myDr[3]=cookie.Values[i];
myDr[4]=tempDr["Discount"].ToString();
totle=double.Parse(myDr[2].ToString())*double.Parse(myDr[3].ToString());
//totle*=double.Parse(myDr[4].ToString());
myDr[5]=totle.ToString() ;
myDt.Rows.Add(myDr);
}
} }
dg_Cart.DataSource=myDt.DefaultView;
if(state==1)
{
dg_Cart.EditItemIndex=-1;
dg_Cart.DataBind();
}
else
{
dg_Cart.DataBind();
}
}