你可以简单地使用 <ItemTemplate>选项在GridView控件中增加不同的控件。
填充列表框和下拉框控件
第二步首要任务是填充列表框和下拉框控件,让我们生成一个简单的服务器端方法来填充列表框和下拉框控件。
C# Code:
// 此方法用于填充列表框和下拉框控件
public DataSet PopulateControls()
{
SqlConnection myConnection = new SqlConnection(GetConnectionString());
SqlDataAdapter ad = new SqlDataAdapter("SELECT [Name] FROM tblPerson", myConnection);
DataSet ds = new DataSet();
ad.Fill(ds, "tblPerson");
return ds;
}
现在我们要在HTML视图中绑定这个方法,为DropDownList控件设置以下代码,对ListBox控件你也重复同样的方法。
<ItemTemplate>
<asp:DropDownList ID="DropDownList1" DataTextField="Name" DataValueField = "Name" DataSource= '<%# PopulateControls() %>' runat="server">
</asp:DropDownList>
</ItemTemplate>
你的DropDownList和 ListBox控件都已经填充了同样的数据,现在让我们瞧瞧如何访问GridView中的控件。
访问GridView中的特定控件。
我们将试图输出当按钮点击事件发生时在TextBox中输入或在DropDownList和ListBox控件中选择的值,来看看这是如何完成的。
C# Code:
protected void Button1_Click(object sender, EventArgs e)
{
// 重复访问GridView中的每一行
foreach (GridViewRow row in GridView1.Rows)
{
// 从GridView中的TextBox控件得到文本
string textBoxText = ((TextBox)row.FindControl("TextBox1")).Text;
Response.Write(textBoxText);
// 从GridView中的DropDownLis控件得到选定值
string dropDownListText = ((DropDownList)row.FindControl("DropDownList1")).SelectedItem.Value;
Response.Write(dropDownListText);
// 从GridView中的ListBox控件选择值
ListBox myListBox = (ListBox)row.FindControl("ListBox1");
foreach(ListItem selectedItem in myListBox.Items)
{
// 检查ListBox中的项是否被选中
if (selectedItem.Selected)
{
// 输出选择项的值
Response.Write(selectedItem.Value);
}
}
}
以上代码中我们做过的都是使用GridViewRow对象来循环访问 GridView控件中的所有行,下一步我们将使用FindControl方法去寻找控件,并输出控件的值。
我希望你喜欢这片文章,快乐地编码!