后台代码中有一按钮事件,意思是"新增上传文件"
点击后生成一个htmlinputfile控件
但由于在htmlinputfile控件无法控制右边按钮的样子
所以我又用了一下text和button类型控件来模拟htmlinputfile控件private void AddHtmlInputFile()
{
TableRow tr=new TableRow();
TableCell tc1=new TableCell();
HtmlInputFile uf=new HtmlInputFile();
uf.ID="uf"+Convert.ToInt16(Table1.Rows.Count);
//uf.Attributes.Add("style","display:none");
tc1.Controls.Add(uf);
HtmlInputText txtName = new HtmlInputText();
txtName.ID = "txtName"+ Convert.ToInt16(Table1.Rows.Count);
tc1.Controls.Add(txtName);
HtmlInputButton btnName = new HtmlInputButton();
btnName.ID = "btnName"+ Convert.ToInt16(Table1.Rows.Count);
btnName.Value = "浏览...";
btnName.Attributes.Add("style","color:White;background-color:#5AA8FF;border-color:Gray;");
tc1.Controls.Add(btnName);
tr.Cells.Add(tc1);
Table1.Rows.Add(tr);
btnName.Attributes.Add("onclick","test('"+uf.ID+"','"+txtName.ID+"')"); //test函数是写在前台的,具体代码见下
}<script language="javascript">
<!--
function test(fid,nid)
{ var but1=document.getElementById(fid);
var but2=document.getElementById(nid);
but1.click();
but2.value = but1.value;
}
-->
</script>
::::::::::::::::::::::::::::::::::::::::::::问题:::::::::::::::::::::::::::::::::::::::::: 点击那个button(如果是HtmlInputFile右边的按钮的话就是一切正常)类型的控件后,谈出选择文件框(应该
是触发了HtmlInputFile的点击事件),然后选中文件后,然后再一次点击"增加上传"按钮,就有脚本错误,提示
"拒绝访问" 错误的源文件如下:<script language="javascript">
<!--
function __doPostBack(eventTarget, eventArgument) {
var theform;
if (window.navigator.appName.toLowerCase().indexOf("netscape") > -1) {
theform = document.forms["Form1"];
}
else {
theform = document.Form1;
}
theform.__EVENTTARGET.value = eventTarget.split("$").join(":");
theform.__EVENTARGUMENT.value = eventArgument;
theform.submit(); (这里出错)
}
// -->
</script>:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
点击后生成一个htmlinputfile控件
但由于在htmlinputfile控件无法控制右边按钮的样子
所以我又用了一下text和button类型控件来模拟htmlinputfile控件private void AddHtmlInputFile()
{
TableRow tr=new TableRow();
TableCell tc1=new TableCell();
HtmlInputFile uf=new HtmlInputFile();
uf.ID="uf"+Convert.ToInt16(Table1.Rows.Count);
//uf.Attributes.Add("style","display:none");
tc1.Controls.Add(uf);
HtmlInputText txtName = new HtmlInputText();
txtName.ID = "txtName"+ Convert.ToInt16(Table1.Rows.Count);
tc1.Controls.Add(txtName);
HtmlInputButton btnName = new HtmlInputButton();
btnName.ID = "btnName"+ Convert.ToInt16(Table1.Rows.Count);
btnName.Value = "浏览...";
btnName.Attributes.Add("style","color:White;background-color:#5AA8FF;border-color:Gray;");
tc1.Controls.Add(btnName);
tr.Cells.Add(tc1);
Table1.Rows.Add(tr);
btnName.Attributes.Add("onclick","test('"+uf.ID+"','"+txtName.ID+"')"); //test函数是写在前台的,具体代码见下
}<script language="javascript">
<!--
function test(fid,nid)
{ var but1=document.getElementById(fid);
var but2=document.getElementById(nid);
but1.click();
but2.value = but1.value;
}
-->
</script>
::::::::::::::::::::::::::::::::::::::::::::问题:::::::::::::::::::::::::::::::::::::::::: 点击那个button(如果是HtmlInputFile右边的按钮的话就是一切正常)类型的控件后,谈出选择文件框(应该
是触发了HtmlInputFile的点击事件),然后选中文件后,然后再一次点击"增加上传"按钮,就有脚本错误,提示
"拒绝访问" 错误的源文件如下:<script language="javascript">
<!--
function __doPostBack(eventTarget, eventArgument) {
var theform;
if (window.navigator.appName.toLowerCase().indexOf("netscape") > -1) {
theform = document.forms["Form1"];
}
else {
theform = document.Form1;
}
theform.__EVENTTARGET.value = eventTarget.split("$").join(":");
theform.__EVENTARGUMENT.value = eventArgument;
theform.submit(); (这里出错)
}
// -->
</script>:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
解决方案 »
- order by 的问题
- 关于正则 替换的问题
- 关于分布式编程,到底有什么好处
- 怎样用JS控制DropDownList的展开?
- 怎么样可以刷新datagrid,不用刷新整个网页的方法??!!
- DATASET到底能存多少数据,几万行吗?
- 如何控制水晶报表在IE上的显示宽度?
- AutoGenerateColumns=true生成的DataGrid怎样控制各个cell的width是一样的?
- 如何新增XML新节点?
- asp.net 能呼出其他dll里的画面么 路径怎么设置
- 初学ASP.NET的困惑,是学C#还是学VB.ASP
- 打开现有项目时vs.net提示"尝试创建web项目或打开***********************,无法解析服务器的名称或地址"
据我所知,论坛里很多人都试过(包括我自己),也有很多人问过(我已经回答过不少了).
这种方式看似没有问题,点击按钮,事件触发上传框的点击,弹出选择框,在选择之后,触发ONCHANGE事件,将值写到文本框里面,一切显示非常吻合,完美无缺!
但可惜的是,因为未知的限制,以这种方式达到的选择文件,却是无效的!