首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

奇怪的替题

2011-12-26 
奇怪的为题?同一个事件用不同的控件进行触发,结果不一样,事件是脚本事件从模态窗口取回一个值,然后触发后

奇怪的为题?
同一个事件用不同的控件进行触发,结果不一样,事件是脚本事件从模态窗口取回一个值,然后触发后台事件给控件赋值,设置断点跟踪发现控件在后台都被赋值了!然而到前台发现,用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   {   }


        }

[解决办法]
我测试过了,要是符合你的意思,嘿嘿,JF,
要加入这句,否则你可以在后台的
protected void Page_Load(object sender, EventArgs e)
{//此处加断点 
}
加断点,会发现,执行BindBtn_OnClick(object sender, EventArgs e)方法之前执行一次Page_Load,执行BindBtn_OnClick之后又执行一次Page_Load,重新加载数据,所以TextBox没有数据,加入这句return false;可以避免此情况发生.

热点排行