datagrid某列中的textbox触发事件

html:
< asp:datagrid id = " dg_RecItem "  runat = " server "  CssClass = " DataGrid "  Width = " 98% "  AutoGenerateColumns = " False " >
                                    
< SelectedItemStyle CssClass = " dgdSelectedItem " ></ SelectedItemStyle >
                                    
< EditItemStyle CssClass = " dgdEditItem " ></ EditItemStyle >
                                    
< ItemStyle CssClass = " dgdItem " ></ ItemStyle >
                                    
< HeaderStyle Wrap = " False "  CssClass = " dgdHead " ></ HeaderStyle >
                                    
< Columns >                                         
                                        
< asp:TemplateColumn HeaderText = " Qty Recv " >
                                            
< HeaderStyle Width = " 100px " ></ HeaderStyle >
                                            
< ItemTemplate >
                                                
< asp:TextBox id = " txt_QtyRecv "  runat = " server "  Width = " 90% "  AutoPostBack = " True "  OnTextChanged = " txt_QtyRecv_TextChange " ></ asp:TextBox >
                                                
< asp:Label id = " lbl_QtyRecv "  runat = " server " ></ asp:Label >
                                            
</ ItemTemplate >
                                        
</ asp:TemplateColumn >                                         
                                    
</ Columns >
                                
</ asp:datagrid >
                                
cs:
                                
public   void  txt_QtyRecv_TextChange(  object  sender , System.EventArgs e )
        
{            
            TextBox tb 
= (TextBox)sender;                
            DataGridItem item 
= (DataGridItem)tb.Parent.Parent;
            itemIndex 
= item.ItemIndex;
            ...
            }

 ajax方法:

<script>    
  function AI_Compute_Prom(ctlID)
  {
        var ctlEmp= getDataGrid_TemplateControlID(ctlID.toString(),'AI_txt','AI_txt_EmpID');
        var ctlGrade = getDataGrid_TemplateControlID(ctlID.toString(),'AI_txt','AI_txt_Grade');
                     
        var empID = document.getElementById(ctlEmp).value.Trim();
        var periodID = document.getElementById("AI_txt_PeriodID").value.Trim();
             
       var inputParams = empID +';'+ periodID+';'+Grade;
      
       outputParams = HMS.AI.Page.StaffAI.Compute_AI_PROM(inputParams).value;
             
       AI_Write(ctlID,outputParams);
  }
  
  function getDataGrid_TemplateControlID(ctlID,partID,newPartID)
  {
      var nIndex = ctlID.indexOf(partID.toString());
      var  prefixID  = ctlID.substring(0, nIndex);
      return prefixID+newPartID.toString();
  }    
  
  function AI_Write(ctlID,outputParams)
  {
      var ctlMerit = getDataGrid_TemplateControlID(ctlID.toString(),'AI_txt','AI_txt_Merit');
      var ctlSVC = getDataGrid_TemplateControlID(ctlID.toString(),'AI_txt','AI_txt_SVC');
           
      var txtMerit = document.getElementById(ctlMerit);
      var txtSVC = document.getElementById(ctlSVC);
           
      var outputArray = outputParams.split(';');
      if (outputArray.length >= 4)
      {
          txtMerit.value = outputArray[0];
          txtSVC.value = outputArray[1];
      }
  }
</script>

<EditItemTemplate>
 <asp:TextBox id="AI_txt_PreSal" runat="server" CssClass="textbox" Width="100%" οnchange="AI_Compute_Prom(this.id.toString())"></asp:TextBox>
</EditItemTemplate>


.cs:

 引用AjaxPro.dll。
 
 private void Page_Load(object sender, System.EventArgs e)
  {
   AjaxPro.Utility.RegisterTypeForAjax(typeof(FileName));
  }

[AjaxPro.AjaxMethod]
  public string Compute_AI_PROM(string inputParams)
  {
   string outputParams = "";
   AppraisalMasterCTL appraisalMaster  = new  AppraisalMasterCTL();
   AIRecordENT record = new AIRecordENT();
   string[] inputArray = inputParams.Split(';');
   record.EmployeeID = inputArray[0];
   record.PeriodID = Convert.ToInt32(inputArray[1]);
   appraisalMaster.computeProm(record);
   outputParams =record.AIMerit +";"+record.SVC_Increment;
   return outputParams;
  }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值