【问题标题】:Insertion Of dynamic dropdownlist values(of each row) from a gridview to tables将动态下拉列表值(每行)从网格视图插入到表中
【发布时间】:2011-06-09 16:44:16
【问题描述】:
//aspx中的代码。
</asp:TemplateField>
:
:
:
<ItemTemplate>
<asp:DropDownList ID="didDdl" runat="server"
DataSourceID="departmentsDataSource"
DataTextField="Department"
DataValueField="DepartmentID"
SelectedValue='<%# Bind("DepartmentID") %>'
Enabled="False" />
</ItemTemplate>
</asp:TemplateField>
问:我必须一次将选定的下拉列表项插入到表中,即当我单击 提交 按钮(我没有在此处显示)时,所有选定的值都应该在到餐桌的时间。
【问题讨论】:
标签:
c#
asp.net
gridview
drop-down-menu
【解决方案1】:
我的假设是您使用的是 Gridview。所以这会起作用。
protected void btnSubmit_Click(object sender, EventArgs e)
{
List<string> lst = new List<string>();
foreach(GridViewRow gvr in GridView1.Rows)
{
if (gvr.RowType == DataControlRowType.DataRow)
{
lst.Add(((DropDownList)gvr.FindControl("didDdl")).SelectedValue);
}
}
}
临时解决方案
protected void btnSubmit_Click(object sender, EventArgs e)
{
SqlCommand comm = new SqlCommand();
StringBuilder sb = new StringBuilder("INSET INTO [Table] ");
string template = " SELECT @{0} UNION ALL ";
foreach(GridViewRow gvr in GridView1.Rows)
{
if (gvr.RowType == DataControlRowType.DataRow)
{
string value = ((DropDownList)gvr.FindControl("didDdl")).SelectedValue;
sb.AppendFormat(template, value);
comm.Parameters.Add(new SqlParameter("@" + value, value));
}
}
comm.CommandText = sb.ToString()
}
【解决方案2】:
您可以从模板列中读取值,然后构建一个插入语句到 SQL 服务器。
以下示例显示如何使用一个插入语句插入多条记录:
INSERT INTO MyTable (FirstCol, SecondCol)
SELECT 'First' ,1
UNION ALL
SELECT 'Second' ,2
UNION ALL
SELECT 'Third' ,3
UNION ALL
SELECT 'Fourth' ,4
UNION ALL
SELECT 'Fifth' ,5
GO
【解决方案3】:
我能想到的最好方法是获取 arrayList 中的值,然后通过 for 循环将值插入 SQL。