Вставка динамических значений выпадающего списка (каждой строки) из таблицы в таблицы - PullRequest
0 голосов
/ 09 июня 2011

// код в aspx.

   </asp:TemplateField>
        :
        :
        :
   <ItemTemplate>
   <asp:DropDownList ID="didDdl" runat="server" 
    DataSourceID="departmentsDataSource" 
    DataTextField="Department" 
    DataValueField="DepartmentID" 
    SelectedValue='<%# Bind("DepartmentID") %>' 
    Enabled="False" />
   </ItemTemplate>
   </asp:TemplateField>

Q: Я должен вставить выбранные элементы выпадающего списка в таблицу одновременно, т.е. когда я нажимаю кнопку submit (которую я здесь не показывал), тогда все выбранные значения должны идти в время к столу.

Ответы [ 3 ]

1 голос
/ 09 июня 2011

Я предполагаю, что вы используете 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()

}
0 голосов
/ 09 июня 2011

Лучший способ, о котором я могу думать, это получить значения внутри arrayList и через цикл for вставить значения в SQL.

0 голосов
/ 09 июня 2011

Вы можете прочитать значения из столбцов шаблона, а затем создать оператор вставки на сервер 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...