当前位置:编程学习 > C#/ASP.NET >>

ASPAJAXExtSetup控件 难题

功能需求:
  在页面上实现读客户端本地的文本文件的数据的功能,并且要求无刷新

我在页面上放置了一个UpdatePanel1控件,并且我们知道 这个控件里面所发生的事件都是无刷新功能

出现的问题:
  我在UpdatePanel1控件上放置了一个Button,并且这个Button的方法需要访问一个js方法,但是不知道怎么访问不了

代码:
页面代码部分:
<form id="form2" runat="server" autocomplete="off">
    <asp:ScriptManager ID="ScriptManager2" runat="server">
        </asp:ScriptManager>......

UpdatePanel面板部分:
<%---AJAX无刷新面板---%>  
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
   <ContentTemplate>
      <table width="200" border="0" cellspacing="0" cellpadding="0" >
        <tr>
          <td>
           <asp:TextBox ID="FileUrlText" Enabled="false" runat="server"></asp:TextBox>
          </td>
          <td>
           <input type="button" value="打开文件" onclick="file1.click();aaaaaaa.value=file1.value"/></td>
          <td>
           <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="上传文件" /></td>
         </tr>
         <tr>
          <td colspan=3 style="height: 15px">
            <input type="hidden" name="aaaaaaa" value="csf" id="aaaaaaa" runat="server" /></td>
         </tr>
         <tr>
          <td colspan="3" style="height: 15px">
          <input id="Text1" type="hidden" runat="server" value="" /></td>
         </tr>
       </table>
</ContentTemplate>                                                         </asp:UpdatePanel>
<%---AJAX无刷新面板--->

上传功能按钮代码部分:
public void changdi(string flag, string value)
    {
        StreamReader reader = null;
        string temp; //读出文本文件中的每一行的内容 检验是否是合法数据
        int LineNo = 1;
        try
        {
            if (flag == "9")//任意选9场
            {
                //this.TextBox5.Text = "";
                this.Text1.Value = "";
//                reader = new StreamReader(FileUpload1.PostedFile.FileName);
                reader = new StreamReader(value);//无刷新模式 AJAX
                while (!string.IsNullOrEmpty(temp = reader.ReadLine())) //从文本中一行一行的读取
                {
                    if (System.Text.RegularExpressions.Regex.IsMatch(temp, @"^(?=(.*?-){5})(?=(.*?\d){9})[013-]{14}$"))
                    {
                        //                      this.TextBox5.Text += temp + "\r\n";
                        this.Text1.Value += temp + ",";
                        LineNo++;
                    }
                    else
                    {
                        reader = null;
                        string aa = "对不起,您导入的彩票文件第" + LineNo.ToString() + "行格式不正确!!!";
                        this.RegisterStartupScript("aaaaa", "<script>alert('" + aa + "')</script>");
                        //                      this.TextBox5.Text = "";
                        this.Text1.Value = "";
                        return;
                    }
                }
            }
            else //14场
            {
                //this.TextBox5.Text = "";
                this.Text1.Value = "";
//                reader = new StreamReader(FileUpload1.PostedFile.FileName);
                reader = new StreamReader(value);
                while (!string.IsNullOrEmpty(temp = reader.ReadLine())) //从文本中一行一行的读取
                {
                    if (System.Text.RegularExpressions.Regex.IsMatch(temp, @"^[013-]{14}$"))
                    {
                        //this.TextBox5.Text += temp + "\r\n";
                        this.Text1.Value += temp + ",";
                        LineNo++;
                    }
                    else
                    {
                        reader = null;
                        string aa = "对不起,您导入的彩票文件第" + LineNo.ToString() + "行格式不正确!!!";
                        this.RegisterStartupScript("aaaaa", "<script>alert('" + aa + "')</script>");
                        //this.TextBox5.Text = "";
                        this.Text1.Value = "";
                        return;
                    }
                }
            }
        }
        catch (Exception)
        {
        }
        finally
        {
            reader = null;
            this.RegisterStartupScript("", "<script>selectNum_ssf1()</script>");
        }
    }
    #endregion

    #endregion

    #region 四场进球单式上传功能
    protected void Button3_Click(object sender, EventArgs e)
    {
        StreamReader reader = null;
        string temp;
        int LineNo = 1;
        try
        {
            this.Text3.Value = "";
            reader = new StreamReader(FileUpload3.PostedFile.FileName);
            while (!string.IsNullOrEmpty(temp = reader.ReadLine())) //从文本文件中一行一行的读取数据
            {
                if (System.Text.RegularExpressions.Regex.IsMatch(temp, @"^[0123-]{8}$"))
                {
                    this.Text3.Value += temp + ",";
                    LineNo++;
                }
                else
                {
                    reader = null;
                    string aa = "对不起,您导入的彩票文件第" + LineNo.ToString() + "行格式不正确!!!";
                    this.RegisterStartupScript("aaaaa", "<script>alert('" + aa + "')</script>");
                    this.Text3.Value = "";
                    return;
                }
            }
        }
        catch (Exception)
        { }
        finally
        {
            reader = null;
            this.RegisterStartupScript("", "<script>selectNum_sjq4_UpFile()</script>");
        }
    }
    #endregion


关键是最后一句访问js的代码 不知道怎么访问不了
当我去掉asp:UpdatePanel面板之后又可以访问js方法了
有没有办法可以让我访问得到这个js方法

请教各位高手,分不够再给,小弟急需这个功能 --------------------编程问答-------------------- 上面 changdi()这个方法是被放在无刷新面板上调用的方法
他在finally的时候无法调用到selectNum_ssf1()的js方法

但是下面的Button3_Click却能够调用到selectNum_sjq4_UpFile()的js方法

郁闷中。。。。。。
有没有办法能够解决这个问题
让包含在UpdatePanel1里的控件能够调用到javascript方法 --------------------编程问答-------------------- mark 怎么弄得那么复杂 --------------------编程问答-------------------- 好长的代码啊,帮顶一下 --------------------编程问答-------------------- 好长 --------------------编程问答-------------------- this.RegisterStartupScript这个需要修改。

这个其实是调用Page.RegisterStartupScript,我想你是明白的。在用了ScriptManager+UpdatePanel之后,需要使用ScriptManager.RegisterStartupScript,并且需要多传递一个参数(注册脚本的控件)。 --------------------编程问答-------------------- 好复杂,帮顶了.
前面看起来还清楚,后面看的就糊涂了..  ^ ^ --------------------编程问答-------------------- cat_hsfz([MVP]dotNET.CatChen.biz):

找到问题的答案了,我使用的是ajax的无刷新面板
在页面上注册ajax无刷新控件的时候 需要加载无刷新控件的脚本控制器
用ScriptManager的脚本控制统一接口去调用js方法就可以了

问题已解决!!! --------------------编程问答-------------------- 支持.学习 --------------------编程问答-------------------- 支持.学习 --------------------编程问答-------------------- 好长的代码
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,