あなたの質問への回答にはいくつかの部分があり、私はいくつかの仮定を立てています (IDE として Visual Studio を使用しており、コード ビハインド言語として VB を使用できます)。
SQL ステートメントをバインドしてドロップダウンリストに入力したい...
これは、コード ビハインドまたは Visual Studio GUI を使用して行うことができます。ドロップダウン リストにバインド フィールドを使用することもできますが、最終的にはテンプレート フィールドを使用すると柔軟性が向上します。基本的なデータ表示以外の目的で Gridview を使用するのはあなたの友人になるので、テンプレートフィールド ( here ) を読みます。GUI を使用してドロップダウンリストを選択すると、右上に小さな矢印が表示され、データ接続とデータソースを作成してドロップダウンリストにバインドできます。
また、ユーザーがこのドロップダウンリストで行った選択に基づいて、次の列 (column2) に対応するデータを入力したい
ドロップダウンリストで (AutoPostBack を使用して) PostBack をトリガーし、ドロップダウンリストの SelectedIndexChanged イベントを処理し、2 番目の列で更新するコントロールを見つけ、selectedindex/item/ に基づいてそのコントロールを更新する必要があるため、これはもう少し複雑です。ドロップダウンリストの値。これを行うにはいくつかの方法がありますが、これが私が見つけた最も速い方法です (asp.net winforms を使用)。SQL Adventureworks データベースを使用して、列 1 の templatefield のドロップダウンに employeeID を入力し、選択した employeeID を使用して列 2 のラベルにその employeeID の managerID を入力しています。
<asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1"
EnableModelValidation="True" AutoGenerateColumns="False"
DataKeyNames="EmployeeID">
<Columns>
<asp:BoundField DataField="EmployeeID" HeaderText="EmployeeID"
InsertVisible="False" ReadOnly="True" SortExpression="EmployeeID" />
<asp:TemplateField>
<ItemTemplate>
Select EmployeeID
<asp:DropDownList ID="ddEmpID" runat="server" OnSelectedIndexChanged="ddEmpID_SelectedIndexChanged"
DataSourceID="SqlDataSource1" DataTextField="EmployeeID"
DataValueField="EmployeeID" AutoPostBack="True">
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:Label ID="labManagerID" runat="server" Text="ManagerID"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="Data Source=MyServer\Instance;Initial Catalog=AdventureWorks;Integrated Security=True"
ProviderName="System.Data.SqlClient"
SelectCommand="SELECT TOP(10) EmployeeID, ManagerID FROM HumanResources.Employee">
</asp:SqlDataSource>
コード ビハインドからの SelectedIndexChanged イベント:
Protected Sub ddEmpID_SelectedIndexChanged(sender As Object, e As EventArgs)
Dim myDDList As DropDownList = CType(sender, DropDownList)
Dim gvRow As GridViewRow = CType(myDDList.NamingContainer, GridViewRow)
Dim myLabel As Label = CType(gvRow.FindControl("labManagerID"), Label)
' Create your sql query here to populate a data object and assign values throughout your row
Dim myConnection As SqlConnection = New SqlConnection("Data Source=MyServer\Instance;Initial Catalog=AdventureWorks;Integrated Security=True")
Dim myCmd As SqlCommand = New SqlCommand("Select ManagerID FROM HumanResources.Employee WHERE EmployeeID='" + myDDList.SelectedValue + "'", myConnection)
If myConnection.State = ConnectionState.Closed Then myConnection.Open()
myLabel.Text = myCmd.ExecuteScalar
If myConnection.State = ConnectionState.Open Then myConnection.Close()
End Sub
また、Gridview を操作することは自責の念を抱かせることもあるため、いくつかの優れたウォークスルー チュートリアルを手元に用意しておくことをお勧めします。
-J