簡體   English   中英

如何將多個字符串值從一頁傳遞到另一頁?

[英]How to pass multiple string values from one page to another?

我想出了如何使用查詢字符串將一個值作為字符串從文本框從一頁傳遞到另一頁。

但是我不知道如何傳遞多個字符串值,例如,我有一個wrkTbx,rstTbx和roundTbx。

如何將所有三個值傳遞到另一個頁面?

這是我當前的實現:

鍛煉頁面:

        private void appBarAddBtn_Click(object sender, EventArgs e)
        {
            NavigationService.Navigate(new Uri("/MainPage.xaml?key=" + wrkTbx.Text, UriKind.Relative));
        }

主頁:

        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            base.OnNavigatedTo(e);
            if (NavigationContext.QueryString.ContainsKey("key"))
            {
                string val = NavigationContext.QueryString["key"];
                MessageBox.Show("value is:  " + val);
            }

        }

你可以用一個符號(分隔多個查詢字符串參數& )。 但是,您還需要確保正確編碼這些值,因為它們可能包含特殊字符(例如,“&”號)。

這是代碼的修改版本,它傳遞了您提到的所有值。

鍛煉頁面:

private void appBarAddBtn_Click(object sender, EventArgs e)
{
    string url = "/MainPage.xaml" +
        "?wrkTbx=" + System.Net.WebUtility.UrlEncode(wrkTbx.Text) +
        "&rstTbx=" + System.Net.WebUtility.UrlEncode(rstTbx.Text) +
        "&roundTbx=" + System.Net.WebUtility.UrlEncode(roundTbx.Text);

    NavigationService.Navigate(new Uri(url, UriKind.Relative));
}

主頁:

protected override void OnNavigatedTo(NavigationEventArgs e)
{
    base.OnNavigatedTo(e);

    if (NavigationContext.QueryString.ContainsKey("wrkTbx"))
    {
        string wrkTbx = NavigationContext.QueryString["wrkTbx"];
        MessageBox.Show("wrkTbx value is: " + wrkTbx);
    }

    if (NavigationContext.QueryString.ContainsKey("rstTbx"))
    {
        string rstTbx = NavigationContext.QueryString["rstTbx"];
        MessageBox.Show("rstTbx value is: " + rstTbx);
    }

    if (NavigationContext.QueryString.ContainsKey("roundTbx"))
    {
        string roundTbx = NavigationContext.QueryString["roundTbx"];
        MessageBox.Show("roundTbx value is: " + roundTbx);
    }

}
Response.Redirect(String.Format("Default2.aspx?wrkTbx.Text={0}&rstTbx.Text={1}&roundTbx.Text={2}",Server.UrlEncode(wrkTbx.Text),Server.UrlEncode(rstTbx.Text),Server.UrlEncode(roundTbx.Text)));


Server.UrlDecode(Request.QueryString["wrkTbx.Text"]);
Server.UrlDecode(Request.QueryString["rstTbx.Text"]);
Server.UrlDecode(Request.QueryString["roundTbx.Text"]);

對於wp8

//send data
NavigationService.Navigate(new Uri("/MainPage.xaml?key=" + wrkTbx.Text + "&key2=" + wrkTbx2.Text, UriKind.Relative));

//retrive the information 
string key,stringKey2;
int key2;
if (NavigationContext.QueryString.TryGetValue("key", out key)){
  // use key value
}
if (NavigationContext.QueryString.TryGetValue("key2", out stringKey2)){
    key2 = Int32.Parse(stringKey2); // use key2 value
}

對於winndows phone8.1

public class model
{
   public string key{ get; set; }
   public int key2{ get; set; }
}

//send data
Frame.Navigate(typeof(MainPage), new PassedData { key= "my name", key2= 10 });

// get data
protected override void OnNavigatedTo(NavigationEventArgs e){
    model= e.Parameter as model;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM