2017-08-14 63 views
0

我有一個GridView,打開了選擇按鈕。GridView select - 將值傳遞給另一個表單上的文本框

<asp:CommandField ShowSelectButton="True" /> 

我想將行值傳遞給另一頁上的TextBoxes。所以我只是在與時間一起測試。

我目前在使用下面的代碼。

protected void GridView1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    string Property_Name; 
    Property_Name = GridView1.SelectedRow.Cells[4].Text; 
    Session["Property_Name"] = Property_Name; 
    CreateSurvey CS = new CreateSurvey(); 
    CS.PropDetails(); 
    Response.Redirect("CreateSurvey.aspx"); 

這是從第二頁(CreateSurvey.aspx)

public void PropDetails() 
{ 
    var Property_Name = Session["Property_Name"]; 
    Create_PropName.Text = Property_Name.ToString();    
} 

的 「CreateSurvey.aspx」 頁面打開我的代碼,但Create_PropName文本框爲空。

我錯過了什麼嗎?

+0

結果是什麼?你看到QueryString?它是否爲空?還將Query字符串重命名爲PropName,如'Response.Redirect(「CreateSurvey.aspx?PropName =」+ GridView1.SelectedRow.Cells [4] .Text);' – Krishna

+0

調試完代碼後,我可以看到PropName的值通過第二種形式確定,但是當我點擊下面的一段代碼。 var Property_Name = Session [「Property_Name」]; Create_PropName.Text = Property_Name.ToString(); 我得到以下錯誤的Create_PropName.text分配 Create_PropName.Text =「Create_PropName.Text」扔型「System.NullReferenceException」 – Rob

+0

可以更新的問題與你是如何閱讀查詢字符串值異常? – Krishna

回答

0

試試這個 如果你wan't使用會話

protected void GridView1_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     string Property_Name; 
     Property_Name = GridView1.SelectedRow.Cells[4].Text; 
     Session["Property_Name"] = Property_Name; 
     //you don't need this as you already set session above 
     //CreateSurvey CS = new CreateSurvey(); 
     //CS.PropDetails(); 
     Response.Redirect("CreateSurvey.aspx"); 
    } 

而接受你只需要在頁面加載

if(Session["Property_Name"] != null) 
    Create_PropName.Text = Session["Property_Name"].ToString(); 

下面的代碼來調用,如果你想使用的查詢字符串

protected void GridView1_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     Response.Redirect("CreateSurvey.aspx?PropName="+GridView1.SelectedRow.Cells[4].Text); 
    } 

第二頁加載

if(Request.QueryString["Property_Name"] != null) 
    Create_PropName.Text = Request.QueryString["Property_Name"]; 
+0

非常感謝您的幫助,我會給他們一個去, 你會建議最好使用什麼,會話或查詢串? – Rob

+0

如果只是從一個頁面導航到另一個頁面,您可以使用查詢字符串。會話將保持整個Web應用程序的價值。 – Krishna

+0

我一直在使用會話,並出色地工作,但是,當我開始排序GridView時,選擇超鏈接變得不同步並讀取不正確的行。我如何得到這個, 見下文post https://stackoverflow.com/questions/45817664/c-sharp-gridview-refresh-index-after-applying-filter – Rob

相關問題