为什么我的图片按钮要连续单击两次才起作用?

解决方案 »

  1.   

    你的page_load里面的执行事件,没有放在
    if(!this.IsPostBack)
    {
    //事件没有放在这里面执行,所以要点两次.
    }
      

  2.   

    头痛了经常是肚子着凉而不是头着凉.按楼上说的做就对了.问题在Page_load里.
      

  3.   

    谢谢,各位大虾!
    我的Page_Load如下:没什么时间呀
    private void Page_Load(object sender, System.EventArgs e)
    {

    // 在此处放置用户代码以初始化页面
    if(Session["useid"] == null || Session["useid"].ToString().Equals(""))
    Response.Redirect("login.aspx");
    }
      

  4.   

    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;namespace nwt.manager
    {
    /// <summary>
    /// add_kjcy 的摘要说明。
    /// </summary>
    public class add_software : System.Web.UI.Page
    {
    protected System.Web.UI.WebControls.ImageButton ImageButton1;
    protected System.Web.UI.WebControls.DropDownList DropDownList1;
    protected System.Web.UI.WebControls.RequiredFieldValidator Requiredfieldvalidator3;
    protected FreeTextBoxControls.FreeTextBox FreeTextBox2;
    protected System.Web.UI.WebControls.TextBox TextBox1;
    protected System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator1;
    protected System.Web.UI.WebControls.RequiredFieldValidator Requiredfieldvalidator2;
    protected System.Web.UI.WebControls.DropDownList DropDownList2;
    protected System.Web.UI.HtmlControls.HtmlInputText TextBox2;
        protected System.Web.UI.HtmlControls.HtmlInputFile file2;
    private void Page_Load(object sender, System.EventArgs e)
    {

    // 在此处放置用户代码以初始化页面
    if(!this.IsPostBack)
    {
    if(Session["useid"] == null || Session["useid"].ToString().Equals(""))
    Response.Redirect("login.aspx");
    }
    } #region Web Form Designer generated code
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    }

    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {    
    this.ImageButton1.Click += new System.Web.UI.ImageClickEventHandler(this.ImageButton1_Click);
    this.Load += new System.EventHandler(this.Page_Load); }
    #endregion private void ImageButton1_Click(object sender, System.Web.UI.ImageClickEventArgs e)
    {
    if( Session["useid"] == null)
    return;

    string str=FreeTextBox2.Text;

    string sep = "<";
    char [] delimiter = sep.ToCharArray(); string[] paths = str.Split(delimiter);
    string newStr = "";

    for (int i=0;i<paths.Length;i++)
    {
    string dd = paths[i];
    if(dd!="")
    {
    int count=dd.IndexOf(">");
    if(count<0)
    {

    }
    else
    {
    dd = "<"+dd;
    }
    }
    if (dd.IndexOf("http")>=0)
    {
    int weizhi=dd.IndexOf("http");
    int weizhi1=dd.IndexOf("upload/");
    if(weizhi!=-1 && weizhi1!=-1)
    {
    string substr=dd.Substring(weizhi,weizhi1-weizhi);
    dd=dd.Replace(substr,"../");
    dd=dd.Replace("manager/..","");
    }
    }
    newStr = newStr+dd;
    }
    str = newStr;
    nwt.common.Share sh = new nwt.common.Share(this.Application["connStr"].ToString());

    string strPath="";
    if(!this.file2.PostedFile.FileName.Trim().Equals(""))
    {
    string strRelativePath1="download/upload";
    string result1=sh.uploadPicture(this.Request,this.file2,ref strRelativePath1);
    if(!result1.Equals("成功"))
    {
    Response.Write("<script>alert(result1);</script>");
    return;
    }
    strPath=strRelativePath1;
    }
    string sql = "insert into n_software (n_name,content,webpath,manager,sdate) values ('"+this.TextBox1.Text.ToString()+"','" + str.Trim() + "','"+strPath+"','"+Session["useid"].ToString()+"','"+this.TextBox2.Value.ToString()+"')";
    //this.Response.Write(sql);
    try
    {
    int i=sh.execSql(sql);
    if(i==-1)
    {
    Response.Write("<script>alert('失败!');self.close();</script>");
    }
    else
    {
    Response.Write("<script language='javascript'>alert('成功!');</script>");
    }
    }
    catch{}
    }
    }
    }
      

  5.   

    那你把image控件里的代码复制一下,然后把image控件和他的事件代码都删除掉
    然后再拉一个这样的控件到设计器上。然后双激下这个image控件,把代码复制到他的click事件中这样试试,有可能是事件出了故障
      

  6.   

    复人: hackate(兰花开香入梦境,独思佳人亦飘然!!) ( ) 信誉:100  2005-06-22 13:58:00  得分: 0   
       那你把image控件里的代码复制一下,然后把image控件和他的事件代码都删除掉
    然后再拉一个这样的控件到设计器上。然后双激下这个image控件,把代码复制到他的click事件中这样试试,有可能是事件出了故障  _________照着做了,还是不行!
      
     
      

  7.   

    你试着在image的click事件中只写一行代码,比如说是
    response.write("<script>alert('你好啊');</script>");
    这样看看,如果是还要点两下的话,那么,你试着重新建立个页面,把这个页面的代码(注:这里不是复制全部,只要复制page_load和image_click里的执行代码过去,然后在新的页面上。拉个image控件,试试,看看可否解决,
      

  8.   

    不会是你事件里面的那个判断SESSION的语句有问题吧.你把那个判断去掉看看.
    如果还不行,你可在你的事件里面,做一个断点,然后,按F5,单步运行看看.看看是到什么地方被跳走了.
    另外,你还要检查一下,你页面中是否把视图状态关闭(保存页面状态)了,如果是,恢复一下.
      

  9.   

    已经找到原因了!感谢各位的帮忙!谢谢!
    问题的原因在:我调用了一个组件这个长传组件必须给它付于asp.net权限才能长传东西!我忘了!
    所以出现了下面的情况:把想录入的内容填完后点击按钮,因为不支持上传,所以上传的东西丢失。
    接着再点击一下按钮,因为上传的东西丢失,所以用不到上传组件,所以显示成功!
    解决办法:给项目加:asp.net权限!谢谢各位了!