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%" onchange="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;
}
本文介绍了一个使用ASP.NET DataGrid控件的应用案例,其中包括如何通过AJAX实现页面局部刷新,具体展示了如何在DataGrid中使用TextBox控件进行编辑,并通过AJAX调用服务器端方法实时更新数据。
656

被折叠的 条评论
为什么被折叠?



