需求:
有一個頁面A
在A中當光標點到某一欄位時開啟小視窗可錄入大量的文字
設計:
在該欄位中用onfocus事件,用window.showModalDialog開啟小視窗B中
如果該欄位有資料,則開啟視窗時將資料顯示在B中
如果B返回時將資料帶回A中點選欄位,同時關閉B
相關代碼:
A(GridView)...
<asp:TemplateField HeaderText="描述">
<ItemTemplate >
<asp:textbox runat=server ID="descr" Width="30px" Text='<%# container.dataitem("descr") %>' class="txt" onfocus="descr071127(1,1);" MaxLength=200 />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="包裝方式">
<ItemTemplate >
<asp:DropDownList runat=server ID="bzcon" ...
function descr071127(i,j)
{
var e = event.srcElement;
var row = e.parentNode.parentNode;
var txts = row.all.tags("INPUT");
var sels = row.all.tags("SELECT");
var descr;
var obj = new Object();
obj.name=txts[i].value;
sels[j].focus();/*為了避免有的電腦中B視窗一直出現*/
descr=window.showModalDialog("descr.aspx",obj,"dialogWidth=400px;dialogHeight=200px;status=no;scroll=no;help=no;");
if (descr!=undefined) txts[i].value=descr;
}
B...
function rtn()
{
window.returnValue=document.getElementById("TextBox2").value;
window.close();
}
<input id="Button1" type="button" value="返回" class="btn" onclick="rtn();" tabindex="2" /></td>
</tr>
<tr>
<td style="height: 45px" colspan=2>
<asp:TextBox ID="TextBox2" runat="server" CssClass="txt" Height="88px" MaxLength="200" Width="354px" TextMode="MultiLine" TabIndex="1"></asp:TextBox>
<script language=javascript>
var obj = window.dialogArguments;
var tb= document.getElementById("TextBox2");
tb.value=obj.name;
/* tb.focus();這句話有的電腦執行出錯*/
</script>
...