您的位置:首页 > 其它

TextBox获得焦点失去焦点也可引发服务器端事件(webform程序)

2007-01-24 15:48 302 查看
使用javascript脚本触发服务器端的按钮控件,在按钮控件里写与后台数据交互的代码。
TextBox获取焦点,失去焦点的脚本中,触发服务器端的控件。
使TextBox在编号和名称中自由切换。

--------下面示例只说明其实现方法,是在开发环境中的部分代码-------------------------
下面的例子中,实现TextBox获得焦点后显示编号,失去焦点显示名称,还提供了TextBox的右键帮助,和帮助按钮功能。
页面上放置txtKMBH1文本框,帮助按钮btnKMBH1Help,隐含按钮控件btnKMBH,隐含的存放编号的TextBox控件,
<asp:textbox onkeypress="InputNum()" id="txtKMBH1" runat="server" Width="96px" onmousedown="HelpMouseRight('btnKMBH1Help')" onblur="textboxonblur()" onfocus="textboxonfocus()"></asp:textbox>
<INPUT class="HelpBtn" id="btnKMBH1Help" onclick="KmzdHelp('hdnProcessid','hdnDwbh','hdnKjnd','txtKMBH1','hdnKMBH1')" type="button" value="…" name="Button1">
<INPUT id="hdnKMBH1" style="WIDTH: 1px; HEIGHT: 20px" type="hidden" size="1" name="Hidden1" runat="server">
<asp:button id="btnKMBH" runat="server" Width="1px" cssClass="OperBtn" Text="help"></asp:button>
脚本代码:
//右键帮助,触发帮助按钮的click事件
function HelpMouseRight(srcName)
{
if(event.button==2)
{
document.all(srcName).click(); //触发页面上的帮助按钮的click事件
}
}
//失去焦点事件
function textboxonblur()
{
document.all("btnKMBH").click(); //触发页面上隐含的与后台交互的按钮的click事件
}
//获得焦点事件
function textboxonfocus()
{
document.all("txtKMBH1").value=document.all("hdnKMBH1").value; //获取焦点时把编号复制给获得焦点的TextBox
}
//帮助脚本
function KmzdHelp(vProcEdit,vDwEdit,vYear,vNameEdit,vCodeEdit)
{
var isProcessId = document.all(vProcEdit).value;
var dwbh=document.all(vDwEdit).value;
var year=document.all(vYear).value;
var vsWhere=" ZWKMZD_DWBH IS NULL OR ZWKMZD_DWBH='' OR ZWKMZD_DWBH LIKE '%"+dwbh+"%'";
var vsHelpInfo=helpParamUse(isProcessId,year,"*LS*.ZWKMZD*YY*","ZWKMZD_KMBH","ZWKMZD_KMMC","ZWKMZD_YEFX","ZWKMZD_JS","ZWKMZD_MX",vsWhere,"@ZW_KMSTRU","S1","科目帮助","0","")
if(!vsHelpInfo) return false;
if(isEmpty(vsHelpInfo.helpNum)) return false;
//document.all(vKmfx).value=vsHelpInfo.helpISN; //科目方向
document.all(vCodeEdit).value=vsHelpInfo.helpNum; //科目编号
document.all(vNameEdit).value=vsHelpInfo.helpName; //科目名称
return;
}

隐含按钮控件btnKMBH的click()代码:用于与后台数据交互。
private void btnKMBH_Click(object sender, System.EventArgs e)
{
Database db = new Database();
db.IsSql=true;
SqlDataReader reader = null;
string vSql="select zwkmzd_kmbh,zwkmzd_kmmc from zwkmzd"+this.hdnKjnd.Value+" where zwkmzd_kmbh='"+this.txtKMBH1.Text+"'";
try
{
db.RunProc(vSql,out reader);
while(reader.Read())
{
this.txtKMBH1.Text = Convert.ToString(reader.GetValue(reader.GetOrdinal("zwkmzd_kmmc")));
this.txtKMBH2.Text = Convert.ToString(reader.GetValue(reader.GetOrdinal("zwkmzd_kmbh")));
this.hdnKMBH1.Value = Convert.ToString(reader.GetValue(reader.GetOrdinal("zwkmzd_kmbh")));
}
}
catch(Exception ex)
{
throw ex;
}
finally
{
if(reader!=null) reader.Close();
if(db!=null) db.Close();
}
}
注:该示例只是在使用过程中的代码,只用来说明实现方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: