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