奇怪的为题?

qiuming0306 2007-09-08 11:28:24
同一个事件用不同的控件进行触发,结果不一样,事件是脚本事件从模态窗口取回一个值,然后触发后台事件给控件赋值,设置断点跟踪发现控件在后台都被赋值了!然而到前台发现,用txtbox引发脚本的时候,可以控件显示刚才的赋值,然而用imgbutton引发的时候却,控件依然是空白的!
代码:
<asp:TextBox ID="Person_IDTxt" runat="server" Width="280px" Length="20" onclick="return showmodule();"></asp:TextBox>
<asp:ImageButton ID="SearchIbtn" runat="server" ImageUrl="~/Images/view.gif" OnClientClick="return showmodule();"/>

<asp:Button ID="BindBtn" CssClass="hideControl" runat="server" OnClick="BindBtn_OnClick"
CausesValidation="false" />
脚本:
<script language="javascript">
function showmodule()
{
var Person_ID= window.showModalDialog("DrugReceivePerson.aspx", 'popupWindow', "dialogWidth:450px;dialogHeight:490px;");
if(Person_ID!=null &&Person_ID!="" )
{
document.getElementById('HFPerson_ID').value=Person_ID;
document.getElementById("BindBtn").click();
}
else
{

}
}
</script>
后台:
public void BindBtn_OnClick(object sender, EventArgs e)
{
try
{
if (Convert.ToString(HFPerson_ID.Value) != null && Convert.ToString(HFPerson_ID.Value) != "")
{
Person_ID = Convert.ToInt32(HFPerson_ID.Value);
dt = MySearchPerson.PersonInfo_GetNameByPersonID(Person_ID);

foreach (System.Data.DataRow row in dt.Rows)
{
Person_IDTxt.Text = Convert.ToString(row["Name"]);

}
}


}
catch { }


}
...全文
192 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
elvis_gao 2007-09-14
  • 打赏
  • 举报
回复
我测试过了,要是符合你的意思,嘿嘿,JF,
要加入这句,否则你可以在后台的
protected void Page_Load(object sender, EventArgs e)
{//此处加断点 
}
加断点,会发现,执行BindBtn_OnClick(object sender, EventArgs e)方法之前执行一次Page_Load,执行BindBtn_OnClick之后又执行一次Page_Load,重新加载数据,所以TextBox没有数据,加入这句return false;可以避免此情况发生.
elvis_gao 2007-09-14
  • 打赏
  • 举报
回复
1、首先将<asp:ImageButton ID="SearchIbtn" runat="server" ImageUrl="~/Images/view.gif" OnClientClick="return showmodule();"/>
改为:
<input type="image" id="SearchIbtn" src="="~/Images/view.gif" onclick="return showmodule();" />
2、然后加入这句return false;
function showmodule()
{
var Person_ID= window.showModalDialog("DrugReceivePerson.aspx", 'popupWindow', "dialogWidth:450px;dialogHeight:490px;");
if(Person_ID!=null &&Person_ID!="" )
{
document.getElementById('HFPerson_ID').value=Person_ID;
document.getElementById("BindBtn").click();
return false;//加入这句
}
else
{

}
}
qiuming0306 2007-09-10
  • 打赏
  • 举报
回复
Up
qiuming0306 2007-09-10
  • 打赏
  • 举报
回复
up
qiuming0306 2007-09-10
  • 打赏
  • 举报
回复
所有的事件都执行了,怎么说js找不到imagebutton呢!设置debugger 发现可已执行事件的,赋值的时候就没有imagebutton 的事情了,这个控件就是引发事件
watson110 2007-09-10
  • 打赏
  • 举报
回复
可用客户端的图片按钮实现
JustLovePro 2007-09-10
  • 打赏
  • 举报
回复
mark~
best8625 2007-09-09
  • 打赏
  • 举报
回复
js
是找不到imgbutton的
qiuming0306 2007-09-09
  • 打赏
  • 举报
回复
这个没有问题的~!可以出现先要的结果,现在的困惑是为什么用不一样的控件,执行一样的事件结果不一样!设置断点表示事件没有问题!
JGood 2007-09-09
  • 打赏
  • 举报
回复
<asp:TextBox ID="Person_IDTxt" runat="server" Width="280px" Length="20" onclick="return showmodule();"></asp:TextBox>

OnClick是触发服务器事件的,不是触发客户端脚本的
onclick="return showmodule();" ==> OnClientClick="return showmodule();"
qiuming0306 2007-09-08
  • 打赏
  • 举报
回复
怎么没有人啊

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧