DataGrid一般是用于数据的显示、删除和修改。近来广泛使用的方法是,在Footer行实现“添加纪录”和“搜索”的功能。具体做法是:在Footer行,对应于Edit/Cancel/Update/Delete按钮的列加入Insert/Search两个button,CommandName分别设为“Insert”和“Search”;其他列,放入类似Edit Template的控件。点击Insert按钮,在DataGrid的ItemCommand事件中,判断CommandName为“Insert”后,添加纪录,若为“Search”,则重新绑定数据。
为了方便,还可以在Footer行加入一个Reset按钮,以清空Footer行的数值。为方便用户,不进行postback,而只是用javascript在客户端进行清空。做法如下:
一、Footer行中加入这样的Image控件:
<asp:Image id="imgReset" runat="server" ImageUrl="/eeg/img/reset.gif" ToolTip="Reset" style="cursor:hand" onClick="fcnAthosIbtResetClick(this, ['txtInsertUserId', 'txtInsertUserName', 'txtInsertUserRole', 'txtInsertUserEmail']);"></asp:Image>
二、aspx页面引用下列Javascript函数:
function fcnAthosIbtResetClick(ibtReset, arrIds)
{
var strResetId = new String(ibtReset.id);
var i = strResetId.lastIndexOf("_");
var strRow = strResetId.substring(0,i+1);
for(i=0;i<arrIds.length;i++)
{
strId = strRow + arrIds[i];
ctrl = document.all[strId];
if( ctrl.tagName == "INPUT" )
{
if( ctrl.type=="radio")
ctrl.checked = false;
else if( ctrl.type=="text")
ctrl.value = "";
}
else if(ctrl.tagName == "SELECT")
ctrl.selectedIndex = -1;
}
}
说明:Image控件的声明语句中,
onClick="fcnAthosIbtResetClick(this, ['txtInsertUserId', 'txtInsertUserName', 'txtInsertUserRole', 'txtInsertUserEmail']);"
fcnAthosIbtResetClick就是点击图像之后会执行的Javascript函数,其中的参数['txtInsertUserId', 'txtInsertUserName', 'txtInsertUserRole', 'txtInsertUserEmail']就是要清空的Footer行控件的id的名字。
本文原发表于 http://community.csdn.net/Expert/topic/3629/3629405.xml?temp=.6919214