私はこの問題を一日中苦労しており、答えが見つからないようです。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();
}
}
}
どのようにクエリ文字列を追加しますか? StartInterview.aspxのコードビハインドには何がありますか? また、URL書き換えスキームがあるのかどうかはわかりませんが、ボタンに割り当てたNavigateURLは "StartInterview.aspx"ではなく "Trainer_StartInterview.aspx"です。 – rikitikitik
あなたの質問にお答えします: – user1288906
お返事ありがとうございます。あなたの質問に答えるには: "Trainer_PickRecord"で、グリッドビューの行を選択する "GridView1_SelectedIndexChangedメソッド"を追加しました。私はまた、レコードのIDを保持する 'id'というグローバル変数を宣言しています。これは、----- h1.NavigateUrl = "Trainer_StartInterview.aspx?x =" + id; 「InstantiateIn」メソッドで指定します。 Trainer_StartInterview.aspx.csファイルも含まれています。ありがとう。 – user1288906