当前位置:首页
开发技术指南» 文章正文
    引言:
 

 

    摘要: forbidden you dont have permission to access / on this server. additionally, a 403 forbidden error was encountered while trying to use an errordocument to handle the request. apache/2.0.40 server ......
 ·排序代码错误,help在线给分    »显示摘要«
    摘要: 刚刚学用delphi编程,须对tdbgrid中的点击title排序,在网上找到这样一段代码,用在这里可以吗? 我用的是tdbgrid,database1,datasource1,query1。 procedure dbgridsort(column: tcolumn); var s,cfieldname:string; i:integer; dataset:tdataset; proced......


关于绑定到datagrid中的textbox控件添加onchange事件,总是提示未将对象引用设置到对象的实例错误

txtUnitAmount是一个绑定在datagrid中的textbox,我想把件数乘以一个数得出总数量:所以当我输入件数后,触发一个change事件,这样绑定在datagrid中同一行的另一个textbox根据我输入的值计算出来并显示  
  在服务器端如下:  
  //首先找出datagrid中的txtUnitAmount控件  
  private   void   dgBody_ItemCreated(object   sender,   System.Web.UI.WebControls.DataGridItemEventArgs   e)  
  {  
  try  
  {  
  if(e.Item.Cells[5].FindControl("txtUnitAmount")!=   null)  
  {  
  int   inttemp1=0;  
  TextBox   txtUnitAmount=(TextBox)e.Item.Cells[5].FindControl("txtUnitAmount");  
  if   (txtUnitAmount.Text.ToString()=="")  
  {  
  inttemp1=0;  
  }  
  else  
  {  
  inttemp1=Convert.ToInt32(txtUnitAmount.Text.ToString());  
  }  
  if(e.Item.Cells[0].FindControl("DropListPackage")!=   null)  
  {  
  DropDownList   DropListPackage=(DropDownList)e.Item.Cells[3].FindControl("DropListPackage");  
   
  int   inttemp2=Convert.ToInt32(DropListPackage.SelectedItem.Value.ToString());  
  txtUnitAmount.Attributes.Add("onchange","Calculate(inttemp1,inttemp2)");  
  }  
  }  
  }  
  catch(Exception   ex)  
  {  
  Response.Write(ex.ToString());  
  }  
  }  
   
  aspx中的javascript  
  <script   language="javascript">  
  function   Calculate(int   intUnitAmount,int   intInerAmount)  
  {  
  var   totalAmount=intUnitAmount*intInerAmount;  
  PreInStock.txtTotalAmount.value=totalAmount;  
  }  
   
   
  </script>  
   
   
  其中页面上的控件如下:  
  <asp:TemplateColumn   HeaderText="包装数量">  
  <ItemTemplate>  
  <asp:Repeater   runat="server"   DataSource=<%#   ((DataRowView)Container.DataItem).Row.GetChildRows("Product_Package")   %>>  
  <ItemTemplate>  
  <%#   DataBinder.Eval(Container.DataItem,   "[\"InterAmount\"]")   %>  
  <%#   DataBinder.Eval(Container.DataItem,   "[\"AmountUnit\"]")   %>  
  /<%#   DataBinder.Eval(Container.DataItem,   "[\"UnitName\"]")   %><br>  
  </ItemTemplate>  
  </asp:Repeater>  
  </ItemTemplate>  
  </asp:TemplateColumn>  
  <asp:TemplateColumn   HeaderText="件数">  
  <ItemTemplate>  
  &nbsp;  
  <asp:TextBox   id="txtUnitAmount"   Width="35px"   Text=<%#   DataBinder.Eval(Container.DataItem,   "UnitAmount")   %>   runat=server   AutoPostBack=True>  
  </asp:TextBox>  
  </ItemTemplate>  
  </asp:TemplateColumn>  
  <asp:TemplateColumn   HeaderText="总数">  
  <ItemTemplate>  
  <INPUT   style="WIDTH:   34px;   HEIGHT:   21px"   type=text   size=1   value=<%#   DataBinder.Eval(Container.DataItem,   "TotalAmount")   %>   runat="server"   id="txtTotalAmount">  
  </ItemTemplate>  
  </asp:TemplateColumn>  
   
 

NO.1   作者: ld_key

你是在什麼時候綁定的。確保是在edit狀態下才有textbox控件。

NO.2   作者: fleshwater

我想了个方法,就是datagrid中加设编辑列,在另一个textbox的属性为onlyread=true,当用户在一个textbox输入件数单击编辑重的更新,在该事件中计算出数量,不用javasript不知道是否能满足你的需求否!!

NO.3   作者: Cnapollo

我是这样实现的,在datagrid绑定后插入一些脚本定义对textbox的前端onchange的处理.  
  js中写一个带参数的函数根据参数对相应的textbox的onchage事件进行处理.  
   
  .cs  
  for(int   i=0;i<ds.Tables[0].Rows.Count;i++)  
  Response.Write("<script   for=AppGrid__ctl"+(i+3).ToString()+"_TextBox1   event=onchange>TextBoxOnChange("+(i+1).ToString()+");</script>");  
  javascript:  
  function   CheckBoxOnClick(i)  
  {  
  //alert(document.all.AppGrid.rows[i].cells[1].innerText);  
  var   TextBoxID=eval("document.all."+"AppGrid__ctl"+(parseInt(i)+2)+"_TextBox1");  
  //TextBoxID.value=这里你自己处理吧  
  }  
  注:AppGrid__ctl"+(i+3).ToString()+"_TextBox1,是你的textBox   clientid,   你的根据html源文件   看到

NO.4   作者: Cnapollo

不过用onkeypress事件会好一些,例  
  <input   type=text   onkeypress="javascript:if(event.keyCode==13){alert(a);return   false;}">

NO.5   作者: tqinghaijn

先up一下:)噢


 ·问一个问题,    »显示摘要«
    摘要: 程序运行需要每次都有变化,所以我给一个按钮“play”写了n个处理事件,如何在点击按钮时,随机处理编写好的事件! 假设: a,b,c……为编写好的事件 play.addactinnlistener(a); play.addactinnlistener(b); play.addactinnlistener(c); …… 如何编写程序,随机处理其中的一个事件呢? 谢谢 ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE