2013-11-19 3 views
0

У меня есть таблица с Item_id, Item_value, Item_size, Item_brand, который является источником данных моего GridView и мой GridView позволяет пользователям обновлять столбцы. Теперь я хочу сохранить все измененные строки в сетке в таблицу.Как сохранить измененные строки сетки в DataTable

Как List modifiedRecords = listStore.getModifiedRecords();, который дает список измененных записей, есть ли у нас какая-либо функция, которая хранит всю строку измененного столбца в таблице данных?

ответ

0

Вы должны использовать Редактируемый GridView с помощью Templetfields из GridView, используйте ниже кода в файле .aspx:

<asp:TemplateField HeaderText="ITEM ID"> 
            <EditItemTemplate> 
             <asp:Label ID="lblId" runat="server" Text='<%# Bind("Item_Id") %>'></asp:Label> 
            </EditItemTemplate> 
            <ItemTemplate> 
             <asp:Label ID="lblId2" runat="server" Text='<%# Bind("Item_Id") %>'></asp:Label> 
            </ItemTemplate> 
            <HeaderStyle HorizontalAlign="Left" /> 
           </asp:TemplateField> 
    <asp:TemplateField HeaderText="ITEM Value"> 
            <EditItemTemplate> 
             <asp:TextBox ID="txtItemValue" runat="server" Text='<%# Bind("Item_Value") %>'></asp:TextBox> 
            </EditItemTemplate> 
            <FooterTemplate> 
             <asp:TextBox ID="txtItemNewValue" runat="server"></asp:TextBox> 
            </FooterTemplate> 
            <ItemTemplate> 
             <asp:Label ID="lblItemValue" runat="server" Text='<%# Bind("Item_Value") %>'></asp:Label> 
            </ItemTemplate> 
            <HeaderStyle HorizontalAlign="Left" /> 
           </asp:TemplateField> 

Тогда первый добавить a Dataset с именем DsItems, связанный с таблицей Item и добавляющий следующие запросы: Выбор элементов Запрос: "Выберите ITEM_ID, item_value из TblItems" Update Query в Dataset: "Обновление TblItems установить item_value = @ значение где ITEM_ID = @ ID" Теперь в вашем .cs файл сначала вызвать ссылку на DSItems, как:

 using System; 
     using System.Collections; 
     using System.Collections.Generic; 
     using System.Data; 
     using System.Diagnostics; 
     using System.ComponentModel; 
     using YouApplication.DSItems; //your dataset refernce 




    Public Void LoadItems() 
    { 
    TblItemTableAdapter item= new TblItemTableAdapter(); 
    DataTable items= item.GetItems(); 
    if (items.Rows.Count > 0) { 
Gridview1.DataSource = allowances; 
Gridview1.DataBind(); 
    }} 

    protected void GridView1_RowUpdating(object sender, System.Web.UI.WebControls.GridViewUpdateEventArgs e) 
    { 
     try { 

    TblItemTableAdapter item = new TblItemTableAdapter(); 

    int item_id = txtItemId.Text; 
    TextBox txtItemValue =   (TextBox)grdContact.Rows(e.RowIndex).FindControl("txtItemValue"); 

     item.UpdateItems(txtItemValue.text, item_id); 
     Gridview1.EditIndex = -1; 
    LoadItems(); 
} catch (Exception ex) { 
    lblStatus.Text = "Items Updated."; 
} 
    } 
     protected void GridView1_RowEditing(object sender,  System.Web.UI.WebControls.GridViewEditEventArgs e) 
    { 
GridView1.EditIndex = e.NewEditIndex; 
LoadItems(); 
    } 

    protected void GridView1_RowCancelingEdit(object sender, System.Web.UI.WebControls.GridViewCancelEditEventArgs e) 
    { 
GridView1.EditIndex = -1; 
LoadItems(); 
    } 

Надеюсь, это поможет вам. Пожалуйста, не стесняйтесь комментировать для дальнейшего уточнения, не забудьте отметить как ответ, если это вам поможет.

+0

Это будет работать, чтобы получить таблицу только обновленных элементов, но все, о чем я просил, - это одна линиальная функция существует для такого рода потребностей ??? – Sri

+0

Это действительно просто, просто вставьте код gridview в aspx-файл, а затем откройте файл .cs. Тогда не стесняйтесь обращаться, если вы не ясно в какой-либо части. – ZahidKakar

+0

Я использовал два поля Item_Id и Item_Value для заполнения и обновления с помощью приведенного выше кода. – ZahidKakar

0

Я надеюсь, что это может быть также возможность обновления записей.

<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
        ConnectionString="<%$ Your Connection %>" 

    UpdateCommand="UPDATE [table_name] SET [email protected]_id, [email protected]_value,[email protected]_size,item_brand [email protected]_brand WHERE(<Your Condition>)" 
      > 
       <UpdateParameters> 
     <asp:Parameter Name=" item_id " /> 
     <asp:Parameter Name=" item_value " /> 
     <asp:Parameter Name=" item_size " /> 
     <asp:Parameter Name=" item_brand " /> 

     </UpdateParameters> 
       </asp:SqlDataSource> 

в C#

protected void GridView1_RowUpdating1(object sender, GridViewUpdateEventArgs e) 
{ 
    GridView1.Visible = true; 
    ClientScript.RegisterStartupScript(Page.GetType(), "validation", "<script language='javascript'>alert('Data Updated Succesfully')</script>"); 
} 
+0

Я не думаю, что у вас есть мой вопрос, я обновил мою сетку, но хочу только обновленные строки в другом datatable – Sri

+0

@Sri. Итак, вы хотите сохранить обновленные записи в базу данных? –

+0

Да, действительно, это тоже сразу – Sri

Смежные вопросы