当前位置: 代码迷 >> ASP.NET >> 对于User Control做HTML生成,调用ajax后控件id改变
  详细解决方案

对于User Control做HTML生成,调用ajax后控件id改变

热度:7199   发布时间:2013-02-26 00:00:00.0
关于User Control做HTML生成,调用ajax后控件id改变
有一个用户控件,里面放的数据绑定控件ListView,存放购物车的数据,有个隐藏域
<input id="hNum" type="hidden" runat="server" name="hNum" />
,加个ashx加载这个用户控件
  context.Response.ContentType = "text/plain";
  ViewManager<ShopCart> viewManager = new ViewManager<ShopCart>();
  ShopCart control = viewManager.LoadViewControl("~/Order/ShopCart.ascx");
  control.ProductID = context.Request.QueryString["productId"];
  control.Acion = context.Request.QueryString["action"];
  control.num = Convert.ToInt32(context.Request.QueryString["productCount"].ToString());
  context.Response.Write(viewManager.RenderView(control));


不点击删除购物车 或不点击 更改数量, 隐藏域id="ShopCart1_hNum" ,
但是点击删除购物车 或点击 更改数量 就获取不到这个 id="ShopCart1_hNum" ,
点击 删除购物车 或点击 更改数量 用户控件里有这个操作:
  if (productsList != null)
  {
  if (productsList.Count > 0)
  {
  ListView1.DataSource = productsList;
  ListView1.DataBind();
  this.hNum.Value = "1";
  }
  else
  {
  ltlNoPro.Text = "<table id='Table1' width=920' border='0' cellspacing='0' cellpadding='0' align='center' style='margin-top:20px; margin:0 auto; text-align:center;'><tr><td>购物车还没有商品</td></tr></table>";
  this.hNum.Value = "0";
  }
  }
不知道为啥id会变

------解决方案--------------------------------------------------------
id是会变的,但是变的很有规律,用这个id也可以的
------解决方案--------------------------------------------------------
hNum 变成了 ShopCart1_hNum ?
是不是先要在页面找到这个用户控件 ~
------解决方案--------------------------------------------------------
右键查看html代码看看生成什么了。根据生成的ID找到规律进行操作
------解决方案--------------------------------------------------------
用ShopCart1.ClientID
  相关解决方案