-6

私は Visual Studio 2008、C# フレームワーク 3.5 で作業しています。form1 と form2 に 3 つのフォームがあります。いくつかのデータ (各フォームのグリッドビューに含まれています) を読み取り、それを form3 に渡しますが、データを保存しようとすると (form3 に) )フォーム1またはフォーム2からデータを取得するだけですが、両方ではありません。問題はロードページにあると思います。事前に感謝します。コードは次のとおりです。

    //form3:

public partial class menu2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

    lblNombreUsuario.Text = (string)Session["sesionicontrol"];
    //prueba
    if (Request.QueryString.Count > 0)
    {
        try
        {
            txtRutEncuestador.Text = Request.QueryString["rut"].ToString();
            leerNombre();
        }
        catch { };
    }

    if (!IsPostBack)
    {
        if (Request.QueryString.Count > 0)
        {
            try
            {

                txtIdEstudio.Text = Request.QueryString["cod_sap"].ToString();
                leerEstudios();

            }
            catch { };

        }
    }
4

1 に答える 1

1

元の投稿されたコードから、page1 と page2 の両方にグリッドを設定し、行選択を menu2 ページにリダイレクトするだけであることがわかります。「sessioncontrol」にデータを入力している場所がわかりませんでした。おそらく null であり、文字列にキャストできません。また、空の try catch を行うことは、コーディングの習慣としては不適切です。代わりに次のことを行う必要があります。

lblNombreUsuario.Text = (string)Session["sesionicontrol"];
if (!IsPostBack)
{
    //prueba 
    if (Request.QueryString.Count > 0)
    {
        if Request.QueryString["rut"] != null)
        {
            txtRutEncuestador.Text = Request.QueryString["rut"].ToString();
            leerNombre();
        }

        if (Request.QueryString["cod_sap"] != null)
        {
            txtIdEstudio.Text = Request.QueryString["cod_sap"].ToString();
            leerEstudios();
        }
    } 
}

両方を 1 つのページに表示する場合は、両方を返し、次に選択時に実行するクエリが必要になります (ここでは sudo コードを使用)。

Request.Redirect("~/Menu2.aspx?rut=" + rut + "&code_sap=" + codeSap);
于 2012-09-25T15:04:02.743 に答える