У меня есть Radgrid, который показывает выбранные инструменты из другой таблицы, чтобы сохранить эти данные в базе данных «запроса». Мне нужно иметь возможность добавлять дополнительную информацию помимо данных от выбранных инструментов, информацию, предоставленную пользователем об инструментах, например, добавление "примечания" при необходимости к выбранному инструменту.
Я смог добавить в каждую строку радара текстовое поле, чтобы пользователь мог добавить примечание туда, но пока я не могу получить данные, записанные в этих текстовых полях
Это код my RadGrid
<telerik:RadGrid ID="rgHtasSeleccionadas" runat="server" GroupingSettings-CaseSensitive="false" RenderMode="Lightweight" AllowPaging="True" AllowSorting="true" AllowFilteringByColumn="True" PageSize="5" OnNeedDataSource="rgHtasSeleccionadas_NeedDataSource" OnItemCommand="rgHtasSeleccionadas_ItemCommand" CssClass="RadGrid_Silk" EnableHeaderContextMenu="true" GridLines="None" Width="100%" BackColor="Gray" AlternatingItemStyle-BackColor="SteelBlue">
<HeaderContextMenu Enabled="false"></HeaderContextMenu>
<MasterTableView AutoGenerateColumns="false" DataKeyNames="IdHerramienta" ItemStyle-HorizontalAlign="Center" AlternatingItemStyle-HorizontalAlign="Center" HeaderStyle-HorizontalAlign="Center" NoMasterRecordsText="<%$ Resources:Language, lbl_tablaVacia %>">
<Columns>
<telerik:GridBoundColumn DataField="IdHerramienta" ReadOnly="true" Display="false"></telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="Codigo" HeaderText="<%$ Resources:Language, lbl_rg_codigo %>" Display="true" ReadOnly="true" AllowFiltering="false" HeaderStyle-HorizontalAlign="Center"></telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="NombreCorto" HeaderText="<%$ Resources:Language, lbl_rg_nombre %>" Display="true" ReadOnly="true" AllowFiltering="false" HeaderStyle-HorizontalAlign="Center"></telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="Descripcion" HeaderText="<%$ Resources:Language, lbl_rg_descripcion %>" Display="true" ReadOnly="true" AllowFiltering="false" HeaderStyle-HorizontalAlign="Center"></telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="Cantidad" HeaderText="<%$ Resources:Language, lbl_rg_cantidad %>" Display="true" ReadOnly="true" AllowFiltering="false" HeaderStyle-HorizontalAlign="Center"></telerik:GridBoundColumn>
<telerik:GridNumericColumn DataField="Costo" HeaderText="<%$ Resources:Language, lbl_rg_costo %>" Display="false" ReadOnly="true" AllowFiltering="false" DataType="System.Decimal" NumericType="Number" SortExpression="Costo" UniqueName="Costo" ></telerik:GridNumericColumn>
<telerik:GridNumericColumn DataField="Gasto" HeaderText="<%$ Resources:Language, lbl_rg_gasto %>" Display="true" ReadOnly="true" AllowFiltering="false" DataType="System.Decimal" NumericType="Number" SortExpression="Gasto" UniqueName="Gasto"></telerik:GridNumericColumn>
<telerik:GridTemplateColumn DataField="Nota" HeaderText="<%$ Resources:Language, lbl_rg_nota %>" UniqueName="Nota" AllowFiltering="false" ReadOnly="true">
<ItemTemplate>
<asp:Textbox ID="txtNota" runat="server" CssClass="form-control form-control-sm" ></asp:Textbox>
</ItemTemplate>
</telerik:GridTemplateColumn>
</Columns>
<PagerStyle PageSizeLabelText="<%$ Resources:Language, lbl_hoja %>"/>
</MasterTableView>
</telerik:RadGrid>
Код кнопки Сохранить
protected void btnLevantaPeticion_OnClick(object sender, EventArgs e)
{
try
{
var dtHtasSeleccionadas = (Session["dtHtasSeleccionadas"] != null) ? (DataTable)Session["dtHtasSeleccionadas"] : new DataTable();
var Folio = CDatos.SP_PeticionesAlmacen.SP_MaxFolio();
foreach (GridDataItem item in rgHerramientas.MasterTableView.Items)
{
TextBox txtNota = item.FindControl("txtNota") as TextBox;
ShowMessage(txtNota.ToString(), "success");
}
DataTable dt = (DataTable)Session["dtHtasSeleccionadas"];
foreach(DataRow dr in dt.Rows)
{
//dtHtasSeleccionadas.Columns.Add("IdHerramienta");
//dtHtasSeleccionadas.Columns.Add("Codigo");
//dtHtasSeleccionadas.Columns.Add("NombreCorto");
//dtHtasSeleccionadas.Columns.Add("Cantidad");
//dtHtasSeleccionadas.Columns.Add("Costo", typeof(double));
//dtHtasSeleccionadas.Columns.Add("Gasto", typeof(double));
//dtHtasSeleccionadas.Columns.Add("Nota");
for (int i = 0; i< int.Parse(dr.ItemArray[4].ToString()); i++)
{
var id2 = CDatos.DDetalles.InsertDetallePeticiones(int.Parse(Folio.ToString()),int.Parse(dr.ItemArray[0].ToString()),1,decimal.Parse(dr.ItemArray[5].ToString()),1,txtNota.ToString());
}
}
this.ShowMessage(Resources.Language.mess_peticion, "success");
}catch (Exception ex) { this.ShowMessage(ex.Message, "danger"); }
}
Мне нужно сохранить данные каждого TextBox как последний параметр команды вставки
var id2 = CDatos.DDetalles.InsertDetallePeticiones (int.Parse (Folio.ToString ()), int.Parse (dr.ItemArray [0] .ToString ()), 1, десятичный.Parse (dr.ItemArray [ 5] .ToString ()), 1, txtNota.ToString () );
Изображение RadGrid
Желаемые результаты
|IdDetalle|Folio|IdHerramienta|Nota |
|1 |1 |987 |test text 1 |
|2 |1 |892 |test text 2 |
Я уже в состоянии сохранить остальные данные (IdDetalle, Folio и др. c), мне просто нужно добавить данные электронной заметки