私のWebサイトは、TextBoxとImageButtonの2つのコントロールを配置したマスターページを使用しています。これらは、すべてのコンテンツサイトで表示およびアクセスできるようになっています。Site.Masterのaspxコードは次のとおりです。
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:ImageButton ID="ImageBtn" runat="server" ImageUrl="~/Image.png"
PostBackUrl="~/Result.aspx"></asp:ImageButton>
ボタンをクリックすると、訪問者がResult.aspxにリダイレクトされます。
Result.aspx.csのPage_Loadイベントには次のものがあります。
protected void Page_Load(object sender, EventArgs e)
{
TextBox txbx = this.Master.FindControl("TextBox1") as TextBox;
if (txbx != null)
{
Label1.Text = "Value: " + txbx.Text;
}
else
{
Label1.Text = "TextBox seems to be null";
}
}
画像ボタンを最初にクリックすると、奇妙な動作が表示されます。訪問者は、TextBox1に値が入力されていても、ページ「値:」(つまり、空の文字列「」)からこの情報を取得します。その後のクリックで、値が正しく表示されます(例:「Value:SomeText」)。
値が初めて「一緒に来ない」のはなぜですか?
それを確実にするためのより良い方法はありますか?
- 訪問者はResult.aspxにリダイレクトされますAND
- 値が「登録済み」であり、Result.aspx.csで処理できること
- 画像ボタンを使用せずにResult.aspxを入力すると、ユーザーがリダイレクトされますPostBackURL
IsPostBackを試しましたが、マスターページを前のページとして使用すると奇妙な動作をするようです...
答えてくれてありがとう!
心から、
ケイ氏