需求:
有一個頁面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>
                            &nbsp;<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>

...
posted on 2007-11-30 10:46  小哈  阅读(782)  评论(0编辑  收藏  举报