台灣最大程式設計社群網站
線上人數
1609
 
會員總數:245964
討論主題:189547
歡迎您免費加入會員
討論區列表 >> ASP.NET >> 抓取另一頁的元件值
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
抓取另一頁的元件值
價值 : 0 QP  點閱數:2286 回應數:12
樓主

arthur
初學者
483 60
212 433
發送站內信

捐贈 VP 給 arthur
假設我的a.aspx檔案內容是•••
<%@Page Languane="vb" AutoEventWireup="false" Codebehind="a.aspx.vb" Inherits="WebApplication1.WebFrom1" %>
<%@ Import NameSpace = "WebApplication1" %>
<%@ Register TagPrefix="uc1" TagName="b" Src="b.ascx" %>
<html>
<head></head>
<body>
<form runat="server">
<asp:TextBox id="TextBox1" Runat="server" />
</form>
</body>
</html>
而b.ascx的檔案內容
<%@ Control Language="vb" AutoEventWireup="false" Codebehind="b.ascx.vb" %>
<html>
<head></head>
<body>
<form runat="server">
<asp:Label id="Label1" Runat="server" />
<asp:Button id="Button1" Text="Button1" Runat="server" />
</form>
</body>
</html>
請問各位高手,我要在b.ascx.vb檔案的Button1_Click觸發事件裡怎麼寫,才能讓b.ascx檔案的Label1顯示出a.aspx檔案的TextBox1的值?

本篇文章發表於2003-11-10 18:02
1樓
作者回應

arthur
捐贈 VP 給 arthur 檢舉此回應
補充一下!a.aspx檔案裡已經有這一行了
<uc1:b id="xxx" runat="server" />
本篇文章回覆於2003-11-10 18:04
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

Stanley
檢舉此回應
你的觀念好奇怪喔,雖然是asp.net的元件,但是透由IIS解譯後,都會變成HTML的元件,這樣Client端才看的懂,所以無論是在a.aspx或是b.aspx裡面的東西,最後也都會變成Client端的元件,而你的程式判斷必須是要在Server端執行,那試問如果同時有10個人在瀏覽並Key In a.aspx頁面並且有5個人在瀏覽b.aspx的同時,b.aspx要秀出a.aspx的TextBox1的值那程式要去判斷哪一個人瀏覽的a.aspx的TextBox的值呢?
本篇文章回覆於2003-11-10 21:51
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

arthur
檢舉此回應
抱歉!因為我是無師自通的初學者,所以有些觀念我都還搞不清楚,問的問題有奇怪的地方請見諒^^"那請問一下!如果我的頁面都有互相需要的參數而參數又不是一定的值的時候我該怎麼辦?是不是只能用Session?還有.net是不是只能Submit給自己?所謂的自己指的是頁面還是Server?如果這個問題還是很奇怪的話請多多包涵^^
本篇文章回覆於2003-11-10 23:41
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

Stanley
檢舉此回應
你其實也不一定要用Session也可以使用傳值的方式,如果選擇的是傳值的方式,那你可以使用Submit但是你的<Form>標籤要作修改一下
<form method="post" action="要導向的網頁.aspx" id="Form1">
你可以使用action來選擇你要傳送到的頁面,使用method來選擇你要傳送的方式,而在你導向另外一張Page的時候就可以在Server端使用Request去接收,這樣也是可以,只不過如果你是使用Session去傳送會比較具有安全性
本篇文章回覆於2003-11-10 23:55
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

arthur
捐贈 VP 給 arthur 檢舉此回應
感謝您^^
本篇文章回覆於2003-11-11 09:06
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

arthur
捐贈 VP 給 arthur 檢舉此回應
我再請教一下!我a.aspx檔案裡的表單是這樣的
<form id="form1" action="c.aspx" method="post" runat="server">
..............................................
<asp:Panel id="Panel1" runat="server">
<uc1:b id="b1" runat="server" />
</asp:Panel>
</form>
這個<uc1:b>指的就是b檔案,我的b檔案是ascx!如果我在b檔案設定一個Button的話,那Submit出去的位置還會是c檔案嗎?因為我試的結果好像都還是在a檔案~"~
本篇文章回覆於2003-11-11 09:24
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
回應

Stanley
檢舉此回應
例如:
<form id="form1" action="c.aspx" method="post" runat="server">
..............................................
<asp:Panel id="Panel1" runat="server">
<uc1:b id="b1" runat="server" /> <--這是甚麼我真的不了解,你自己寫的一個ASP.NET的元件嗎?
</asp:Panel>
<input type='Submit' value='確定傳送'/> <--用Submit去傳送就可以了.並且你的method 已經設定成 "post" 它會將你的參數隱藏,如果你想要使用可以看的到參數你可以把它設定成get,它就會將參數顯示在網址列上
</form>
本篇文章回覆於2003-11-11 23:23
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
作者回應

arthur
捐贈 VP 給 arthur 檢舉此回應
我不知我的想法是不是有問題,因為我有點擺脫不了asp的做法,像asp裡我可以這麼寫
a.asp檔案內容:
<form method="post" action="c.asp">
<!--#include file="b.asp" -->
</form>
b.asp檔案內容:
<table border=0>
  <tr><td><input type="text" name="text1"></td>
  <td><input type="submit" value="Submit"></td></tr>
</table>
c.asp檔案內容:
<%Response.write Request("text1")%>
而我把上述的方法轉移到.Net所以我才想出
a.aspx檔案內容:
<%@Page Languane="vb" AutoEventWireup="false" Codebehind="a.aspx.vb" Inherits="WebApplication1.WebFrom1" %>
<%@ Import NameSpace = "WebApplication1" %>
<%@ Register TagPrefix="uc1" TagName="b" Src="b.ascx" %>
<form id="form1" method="post" action="c.aspx" runat="server">
<uc1:b id="b1" runat="server" />
</form>
b.ascx檔案內容:
<%Control Language="vb" AutoEventWireup="false" Codebehind="b.ascx.vb"%>
<asp:Table runat="server">
  <asp:TableRow runat="server">
    <asp:TableCell runat="server">
      <asp:TextBox id="TextBox1" runat="server" />
    </asp:TableCell>
    <asp:TableCell runat="server">
    <asp:Button id="Button1" runat="server" />
    </asp:TableCell>
  </asp:TableRow>
</asp:Table>
</form>
結果上述的方式不會Submit到c.aspx去,一樣停留在a.aspx!是不是我的觀念又錯了~"~還是我的方法有誤?能教導我一下嗎?還有,如果真能Submit到c.aspx去那抓值的方式是不是一樣用Request呢?
感謝您耐心的教導我^^
本篇文章回覆於2003-11-12 15:10
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
作者回應

arthur
捐贈 VP 給 arthur 檢舉此回應
<uc1:b id="b1" runat="server" />這行是使用者自訂元件,我是不是用錯了!頭腦有點亂了~"~
本篇文章回覆於2003-11-12 15:16
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
回應

Stanley
檢舉此回應
第一張:
Client端:
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm1.aspx.vb" Inherits="test.WebForm1" aspCompat="True"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
    <HEAD>
        <title>WebForm1</title>
        <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.0">
        <meta name="CODE_LANGUAGE" content="Visual Basic 7.0">
        <meta name="vs_defaultClientScript" content="JavaScript">
        <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
    </HEAD>
    <body MS_POSITIONING="GridLayout">
        <form id="Form1" method="post" runat="server" action="WebForm2.aspx">
            <input type="text" runat="server" id="text1"> <input type="submit" value="確定傳送" id="Submit1" name="Submit1" runat="server">
        </form>
    </body>
</HTML>
Server端:
    Private Sub Submit1_ServerClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Submit1.ServerClick
        Response.Redirect("WebForm2.aspx?text1=" & Request("text1"))
    End Sub

第二張
Server端:

    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        '在此加入要初始化頁面的使用者程式碼
        Response.Write(Request("text1"))
    End Sub
本篇文章回覆於2003-11-12 15:54
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
最有價值解答

Stanley
檢舉此回應
這是以前ASP的做法
Default.asp的原始碼:
<Form Method = "Post" Action = "a.asp">
請輸入姓名<INPUT TYPE = "text" NAME = "ID" size="20" ><br>
<INPUT TYPE = "Submit" NAME = "送出" >
</Form>

a.asp的原始碼
<%
a = request("id")
response.write a & "你好"
%>
本篇文章回覆於2003-11-12 16:09
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
12樓
作者回應

arthur
捐贈 VP 給 arthur 檢舉此回應
你的action不是已經是WebForm2.aspx了,為什麼還要再經過Submit_ServerClick觸發後再轉址?還有,如果我要傳的值有幾十個那我也不可能用轉址的方式來傳幾十個參數吧~再者我最需要的部份其實還是a檔包含b檔的部份,因為沒人會把一個網頁寫的像流水一樣的長,所以都會想辦法切割成幾個頁面後再將其組合起來,否則asp也就不需要include了!我也就是想把一大串的程式分成幾個網頁來做之後再將其全部合而為一,如果只是單純的一個頁面要Submit的話這個我會,可是我現在遇到的是檔包含檔要做Submit的動作,所以還是沒找到答案!
不過我還是很感謝您為我講解了那麼多!我想我還是有空的時候再繼續鑽研吧^^
本篇文章回覆於2003-11-12 16:13
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.