这是论坛中的一个问题,很多人经常会遇到,就贴出来。
完整代码如下,实现在光标处插入上传后的文件名:
<%
@ Page Language
=
"
C#
"
AutoEventWireup
=
"
true
"
%>
< script runat ="server" >
protected void Page_Load(object sender, EventArgs e)
{
TextBox1.Attributes.Add( " onclick " , " getCursor(' " + TextBox1.ClientID + " ',' " + Hidden1.ClientID + " '); " );
}
protected void Button1_Click(object sender, EventArgs e)
{
string fileName = FileUpload1.FileName;
// 保存文件省略
int pos = 0 ;
Int32.TryParse(Hidden1.Value, out pos);
TextBox1.Text = TextBox1.Text.Insert(pos, fileName);
}
</ script >
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
< html xmlns ="http://www.w3.org/1999/xhtml" >
< head runat ="server" >
< title > ASP.NET 中在指定的位置处插入字符 </ title >
< script type ="text/javascript" >
function getCursor(param1,param2)
{
var pos = 0 ;
var t = document.getElementById(param1);
if (document.selection )
{
t.focus();
var rng = document.selection.createRange();
rng.setEndPoint( " EndToStart " , t.createTextRange());
pos = rng.text.length;
}
else if (t.selectionStart)
{
pos = t.selectionStart;
}
document.getElementById(param2).value = pos;
}
</ script >
</ head >
< body >
< form id ="form1" runat ="server" >
< div >
< asp:TextBox ID ="TextBox1" runat ="server" Width ="629px" > 123456789 </ asp:TextBox >
< input id ="Hidden1" type ="hidden" runat ="server" />
</ div >
< asp:FileUpload ID ="FileUpload1" runat ="server" />
< asp:Button ID ="Button1" runat ="server" Text ="上载文件" OnClick ="Button1_Click" />
</ form >
</ body >
</ html >
< script runat ="server" >
protected void Page_Load(object sender, EventArgs e)
{
TextBox1.Attributes.Add( " onclick " , " getCursor(' " + TextBox1.ClientID + " ',' " + Hidden1.ClientID + " '); " );
}
protected void Button1_Click(object sender, EventArgs e)
{
string fileName = FileUpload1.FileName;
// 保存文件省略
int pos = 0 ;
Int32.TryParse(Hidden1.Value, out pos);
TextBox1.Text = TextBox1.Text.Insert(pos, fileName);
}
</ script >
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
< html xmlns ="http://www.w3.org/1999/xhtml" >
< head runat ="server" >
< title > ASP.NET 中在指定的位置处插入字符 </ title >
< script type ="text/javascript" >
function getCursor(param1,param2)
{
var pos = 0 ;
var t = document.getElementById(param1);
if (document.selection )
{
t.focus();
var rng = document.selection.createRange();
rng.setEndPoint( " EndToStart " , t.createTextRange());
pos = rng.text.length;
}
else if (t.selectionStart)
{
pos = t.selectionStart;
}
document.getElementById(param2).value = pos;
}
</ script >
</ head >
< body >
< form id ="form1" runat ="server" >
< div >
< asp:TextBox ID ="TextBox1" runat ="server" Width ="629px" > 123456789 </ asp:TextBox >
< input id ="Hidden1" type ="hidden" runat ="server" />
</ div >
< asp:FileUpload ID ="FileUpload1" runat ="server" />
< asp:Button ID ="Button1" runat ="server" Text ="上载文件" OnClick ="Button1_Click" />
</ form >
</ body >
</ html >