2012-04-16 7 views
0

私はこの問題を一日中苦労しており、答えが見つからないようです。GridViewで行を選択し、リダイレクトされたページにレコードIDを渡します

私は、StartInterview.aspxまたはEditViewInterview.aspxにリダイレクトされる "Start Interview"、 "Edit"、 "View Record"という列を動的に生成したPickRecord.aspxというページがあります。

PickRecord.aspx - GridViewにIntervieweeの名前が入力され、ボタンをクリックするとStartInterview.aspxにリダイレクトされ、選択されたレコードの他のフィールドや情報が表示されます。

StartInterview.aspx - データベースからデータを取り込む必要がある、選択されたレコードに関する追加情報が含まれています。私はクエリ文字列を試して、selectedIndexChangedを使用し、運がなかった。

誰かがこのことを通して私を導くことができれば、Woul'dは本当に感謝しています。前もって感謝します!

PickRecord.aspx 


<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" Height="470px" Width="660px" HorizontalAlign="Center" SelectedIndexChanged="GridView1_SelectedIndexChanged"> 

    <Columns> 
     <asp:BoundField DataField="First_Name" HeaderText="First Name" ItemStyle-HorizontalAlign = "Center">  
     </asp:BoundField> 

     <asp:BoundField DataField="Last_Name" HeaderText=" Last Name" ItemStyle-HorizontalAlign = "Center" >  
     </asp:BoundField> 

     <asp:BoundField DataField="Salon_Number" HeaderText="Salon" ItemStyle-HorizontalAlign = "Center" > 
     </asp:BoundField> 

    </Columns> 
</asp:GridView> 

PickRecord.aspx.cs

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.IO; 
using System.Data.SqlClient; 
using System.Data; 

namespace TSS.Trainer 
{ 

    public partial class Trainer_PickRecord : System.Web.UI.Page 
    { 
    static string id; 


    protected void Page_Load(object sender, EventArgs e) 
    { 
     dbConnection dbConn = new dbConnection(); 
     string s = Request.QueryString["mode"].ToString(); 

     if (!IsPostBack) 
     { 
      FillMonth(ddl_T_month); 
      FillYear(ddl_T_year); 
     } 

     if (s == "a") 
     { 

      TemplateField tf1 = new TemplateField(); 
      tf1.ItemTemplate = new btntemplate1(); 
      tf1.HeaderText = "Start Interview"; 
      tf1.ItemStyle.HorizontalAlign = HorizontalAlign.Center; 
      GridView1.Columns.Add(tf1); 

      DataTable dtInterviewee = new DataTable(); 
      dtInterviewee = Salon_WebService.populateInterviewee(); 
      GridView1.DataSource = dtInterviewee; 
      GridView1.DataBind(); 
     } 

     else if (s == "b") 
     { 
      TemplateField tf2 = new TemplateField(); 
      TemplateField tf3 = new TemplateField(); 
      tf2.ItemTemplate = new btntemplate2(); 
      tf3.ItemTemplate = new btntemplate3(); 
      tf2.HeaderText = "Edit"; 
      tf3.HeaderText = "View"; 
      tf2.ItemStyle.HorizontalAlign = HorizontalAlign.Center; 
      tf3.ItemStyle.HorizontalAlign = HorizontalAlign.Center; 
      GridView1.Columns.Add(tf2); 
      GridView1.Columns.Add(tf3); 

      DataTable dtInterviewee = new DataTable(); 
      dtInterviewee = Salon_WebService.populateInterviewee(); 
      GridView1.DataSource = dtInterviewee; 
      GridView1.DataBind(); 
     } 

     void GridView1_SelectedIndexChanged(object sender, EventArgs e) 
     { 
      GridViewRow row = GridView1.SelectedRow; 
      id = row.Cells[0].Text; 
     } 

    } 



    class btntemplate1 : ITemplate 
    { 

     public void InstantiateIn(System.Web.UI.Control container) 
     { 

      HyperLink h1 = new HyperLink(); 
      h1.NavigateUrl = "Trainer_StartInterview.aspx?x= " +id; 
      h1.ImageUrl = "../Images/T_StartIV_small.png"; 
      container.Controls.Add(h1); 
     } 
    } 


    class btntemplate2 : ITemplate 
    { 
     public void InstantiateIn(System.Web.UI.Control container) 
     { 

      HyperLink h2 = new HyperLink(); 
      h2.NavigateUrl = "Trainer_Home.aspx"; 
      h2.ImageUrl = "../Images/Edit_small.png"; 

      container.Controls.Add(h2); 

     } 
    } 

    class btntemplate3 : ITemplate 
    { 
     public void InstantiateIn(System.Web.UI.Control container) 
     { 
      HyperLink h3 = new HyperLink(); 
      h3.NavigateUrl = "Trainer_ViewRecord.aspx"; 
      h3.ImageUrl = "../Images/View_small.png"; 

      container.Controls.Add(h3); 
     } 
    } 
} 

}

StartInterview.aspx

<div id="T_StartInterview_formHeader" class="fh2"> 
     <center> 
      <table> 
       <tr> 
        <td style="text-align: right; color: white"> 
         <asp:Label ID="lblCreate_Date" runat="server" Text="Create Date : "></asp:Label> 
        </td> 
        <td> 
         <asp:Label ID="LabelCD" runat="server" Text="December 05, 2011 "></asp:Label> 
        </td> 
        <td style="text-align: right; color: white"> 
         <asp:Label ID="lblUpdate_Date" runat="server" Text="Update Date : "></asp:Label> 
        </td> 
        <td> 
         <asp:Label ID="lblUD" runat="server" Text="December 09, 2011 "></asp:Label> 
        </td> 
       </tr> 
       <tr> 
        <td style="text-align: right; color: white"> 
         <asp:Label ID="lblCreatedBy" runat="server" Text="Created By : "></asp:Label> 
        </td> 
        <td> 
         <asp:Label ID="lblCB" runat="server" Text='<%# Eval ("First_Name") %>' class="lblSizeR"></asp:Label> 
        </td> 
        <td style="text-align: right; color: white"> 
         <asp:Label ID="lblUpBy" runat="server" Text="Updated By : "></asp:Label> 
        </td> 
        <td> 
         <asp:Label ID="lblUB" runat="server" Text="Sharon Miller " class="lblSizeR"></asp:Label> 
        </td> 
       </tr> 
       <tr> 
        <td style="text-align: right; color: white"> 
         <asp:Label ID="lblFName" runat="server" Text="First Name : "></asp:Label> 
        </td> 
        <td> 
         <asp:Label ID="lblFN" runat="server" Text="Michelle"></asp:Label> 
        </td> 
        <td style="text-align: right; color: white"> 
         <asp:Label ID="lblLName" runat="server" Text="Last Name : "></asp:Label> 
        </td> 
        <td> 
         <asp:Label ID="lblLN" runat="server" Text="Rusk"></asp:Label> 
        </td> 
       </tr> 
       <tr> 
        <td style="text-align: right; color: white"> 
         <asp:Label ID="lblPhone" runat="server" Text="Phone : "></asp:Label> 
        </td> 
        <td> 
         <asp:Label ID="lblPh" runat="server" Text="269 123 1234"></asp:Label> 
        </td> 
        <td style="text-align: right; color: white"> 
         <asp:Label ID="lblEmail" runat="server" Text="E-Mail : "></asp:Label> 
        </td> 
        <td> 
         <asp:Label ID="lblMail" runat="server" Text="[email protected]" class="lblSizeR"></asp:Label> 
        </td> 
       </tr> 
       <tr> 
        <td style="text-align: right; color: white"> 
         <asp:Label ID="lblSalon" runat="server" Text="Salon: "></asp:Label> 
        </td> 
        <td> 
         <asp:Label ID="lblSal" runat="server" Text="Memorial City Mall" class="lblSizeR"></asp:Label> 
        </td> 
       </tr> 
      </table> 

Trainer_StartInterview.aspx.cs

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

namespace TSS.Trainer 
{ 
public partial class Trainer_StartInterview : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     string s = Request.QueryString["id"].ToString(); 
    } 
} 

}

+0

どのようにクエリ文字列を追加しますか? StartInterview.aspxのコードビハインドには何がありますか? また、URL書き換えスキームがあるのか​​どうかはわかりませんが、ボタンに割り当てたNavigateURLは "StartInterview.aspx"ではなく "Trainer_StartInterview.aspx"です。 – rikitikitik

+0

あなたの質問にお答えします: – user1288906

+0

お返事ありがとうございます。あなたの質問に答えるには: "Trainer_PickRecord"で、グリッドビューの行を選択する "GridView1_SelectedIndexChangedメソッド"を追加しました。私はまた、レコードのIDを保持する 'id'というグローバル変数を宣言しています。これは、----- h1.NavigateUrl = "Trainer_StartInterview.aspx?x =" + id; 「InstantiateIn」メソッドで指定します。 Trainer_StartInterview.aspx.csファイルも含まれています。ありがとう。 – user1288906

答えて

0

あなたは、正確な問題を言及していないが、あなたもStartInterview.aspxページをヒットされていない場合、私は複雑なコードでインスタンスを削除するようにアドバイスや簡単なと、それに代わりますボタンまたはボタン列を有するテンプレートベースの列。実装に関するこのリンクを確認することができます:Redirect to specific page when a gridview buttonfield is clicked

+0

さて、私の問題は、PickRecord.aspxでは、グリッドビューで選択した項目の行IDを取得し、それをTrainer_StartInterview.aspxページに渡そうとしていることです。前のページで行った選択に基づいて、「開始iv」ボタンまたは編集および表示ボタンが動的に生成されるため、InstantiateInメソッドを使用する必要があります。ありがとう。 – user1288906

+0

なぜあなたはそれらを最初からレンダリングせずに隠しておき、あなたの基準に従って見えるようにしますか? –

+0

それはたくさんの意味があります。なぜ私はそれについて考えなかったのですか?私はこれを試してみましょう。再度、感謝します! – user1288906

関連する問題