少し説明が必要な質問があるので、できるだけ明確にしようと思います。私はいくつかのWebページで作業しています。1つ(CustomerListPage)GridViewを介して顧客のリストを取得します。顧客を選択すると次のページへのリンクになるように、行をクリック可能にしました。ユーザーが顧客をクリックすると、次のページ(CustomerUsePage)に移動します。このページは、私が作成したラベルの1つでクリックされた顧客の名前と、残りのラベルのその他の情報(顧客ID、通り、都市など)を表示することを想定しています。これは私のCustomerListPageのコードです:
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
GridViewRow row = GridView1.SelectedRow;
if (GridView1.SelectedRow.RowIndex == 0)
{
//string selectedUser = GridView1.SelectedRow.Cells[0].ToString();
Response.Redirect("CustomerUsePage.aspx?Customer_ID=" );
BindGridview();
}
if (GridView1.SelectedRow.RowIndex == 3)
{
//string selectedUser = GridView1.SelectedRow.Cells[0].ToString();
Response.Redirect("CustomerUsePage.aspx?Customer_ID=");
BindGridview();
}
}
CustomerUsePageのコードは次のとおりです。
protected void Page_Load(object sender, EventArgs e)
{
string v = Request.QueryString["Customer_ID"];
Response.Write(v);
if (!IsPostBack)
{
BindControlvalues();
}
}
private void BindControlvalues()
{
con.Open();
SqlCommand cmd = new SqlCommand(" sql query ", con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
con.Close();
DataSet ds = new DataSet();
da.Fill(ds);
Label5.Text = ds.Tables[0].Rows[3][8].ToString();
Label4.Text = ds.Tables[0].Rows[3][0].ToString();
Label1.Text = ds.Tables[0].Rows[3][1].ToString();
Label2.Text = ds.Tables[0].Rows[3][3].ToString();
Label3.Text = ds.Tables[0].Rows[3][5].ToString();
}
ご覧のとおり、これらのデータにインデックスを付けることで、クエリから受け取ったデータをラベルに入力しています。私はそれを避けてより効率的な方法を使いたいと思いますが、今のところはうまくいきます。さらに重要なことに、クリックした顧客に基づいてラベルにデータを入力する方法はありますか?今のところ、任意の顧客をクリックすると同じ結果が得られます。「行インデックス=0を選択した場合」という線に沿って何かを考えていましたが、このページにはGridViewが存在しないため、これは機能しないことがわかっています。しかし、ロジックは私が欲しいものです。何か助けはありますか?ありがとう。