Hi All,
Have a RadGrid in aspx page. Have dynamically created GridTemplateColumn with Textboxes inside.
Works fine. I am able to enter values in the Textbox.
Here is the aspx coding.
Here is the .cs coding
I Need to get the entered values in the Textboxes. Need it as a DataTable when a button is clicked.
Is there any option to get it.
Thank you.
-Anto
Have a RadGrid in aspx page. Have dynamically created GridTemplateColumn with Textboxes inside.
Works fine. I am able to enter values in the Textbox.
Here is the aspx coding.
<telerik:RadGrid ID="RadGridText" runat="server" Skin="Vista" AutoGenerateColumns="false" OnItemDataBound="RadGridText_ItemDataBound" OnNeedDataSource="RadGridText_NeedDataSource" OnPreRender="RadGridText_PreRender" Height="250px" Width="1000px"> <MasterTableView HeaderStyle-CssClass="disable-highlight" Width="98%" HeaderStyle-HorizontalAlign="Center" HeaderStyle-Wrap="true"> <Columns> </Columns> </MasterTableView> <ClientSettings Scrolling-AllowScroll="true" Resizing-AllowColumnResize="true" Scrolling-SaveScrollPosition="true" Scrolling-FrozenColumnsCount="2" Scrolling-UseStaticHeaders="true"> <Selecting AllowRowSelect="true" /> <Scrolling AllowScroll="true" UseStaticHeaders="true" /> </ClientSettings> </telerik:RadGrid>Here is the .cs coding
public void LoadGridText() { dt1 = GetData(); dtnewd = dt1.Tables[0].Clone(); // for (int x = 2; x < dtnewd.Columns.Count - 4; x++) { dtnewd.Columns[x].DataType = typeof(bool); } for (int c = 0; c < dt1.Tables[0].Rows.Count; c++) { for (int d = 2; d < dt1.Tables[0].Columns.Count - 4; d++) { dt1.Tables[0].Rows[c][d] = dt1.Tables[0].Rows[c][d].ToString() == "1" ? true : false;// Convert.ToBoolean(dt1.Tables[0].Rows[c][d]); } } foreach (DataRow dr in dt1.Tables[0].Rows) { dtnewd.ImportRow(dr); } if (dt != null && dtnewd.Rows.Count > 0) { for (Int32 m = 0; m < dtnewd.Rows.Count; m++) { columnsum += Convert.ToDecimal(dtnewd.Rows[m]["MININVESTMENT"]); } txtMinInvestment.Text = columnsum.ToString(); txtBudget.Text = (Convert.ToDouble(columnsum) * 10).ToString(); } GridBoundColumn objBoundMKTID = new GridBoundColumn(); objBoundMKTID.HeaderText = dtnewd.Columns[0].ToString().ToString(); objBoundMKTID.UniqueName = dtnewd.Columns[0].ToString().ToString(); objBoundMKTID.DataType = typeof(Int32); objBoundMKTID.DataField = dtnewd.Columns[0].ToString(); RadGridText.MasterTableView.Columns.Add(objBoundMKTID); objBoundMKTID.Display = false; GridBoundColumn objBound = new GridBoundColumn(); objBound.HeaderText = dtnewd.Columns[1].ToString().ToString(); objBound.UniqueName = dtnewd.Columns[1].ToString().ToString(); objBound.DataType = typeof(string); objBound.DataField = dtnewd.Columns[1].ToString(); objBound.HeaderStyle.Width = 100; objBound.HeaderStyle.Wrap = true; objBound.ItemStyle.Width = 100; objBound.ItemStyle.Wrap = true; RadGridText.MasterTableView.Columns.Add(objBound); for (int z = 2; z < dtnewd.Columns.Count - 4; z++) { GridTemplateColumn objGridTemp = new GridTemplateColumn(); objGridTemp.HeaderText = dtnewd.Columns[z].ToString().ToString(); objGridTemp.UniqueName = dtnewd.Columns[z].ToString().ToString(); //objBound.DataType = typeof(string); objGridTemp.DataField = dtnewd.Columns[z].ToString(); objGridTemp.HeaderStyle.Width = 100; objGridTemp.HeaderStyle.Wrap = true; objGridTemp.ItemStyle.Width = 100; objGridTemp.ItemStyle.Wrap = true; objGridTemp.ItemTemplate = new MyTemplate(dtnewd.Columns[z].ToString()); RadGridText.MasterTableView.Columns.Add(objGridTemp); } GridBoundColumn objBoundcol3 = new GridBoundColumn(); objBoundcol3.HeaderText = "MININVESTMENT"; objBoundcol3.UniqueName = "MININVESTMENT"; objBoundcol3.DataType = typeof(string); objBoundcol3.DataField = "MININVESTMENT"; objBoundcol3.HeaderStyle.Width = 100; objBoundcol3.HeaderStyle.Wrap = true; objBoundcol3.ItemStyle.Width = 100; objBoundcol3.ItemStyle.Wrap = true; objBoundcol3.Visible = false; RadGridText.MasterTableView.Columns.Add(objBoundcol3); GridBoundColumn objBoundcol = new GridBoundColumn(); objBoundcol.HeaderText = "SORTORDER"; objBoundcol.UniqueName = "SORTORDER"; objBoundcol.DataType = typeof(string); objBoundcol.DataField = "SORTORDER"; objBoundcol.HeaderStyle.Width = 100; objBoundcol.HeaderStyle.Wrap = true; objBoundcol.ItemStyle.Width = 100; objBoundcol.ItemStyle.Wrap = true; objBoundcol.Display = false; RadGridText.MasterTableView.Columns.Add(objBoundcol); GridBoundColumn objBoundcol2 = new GridBoundColumn(); objBoundcol2.HeaderText = "MKTPRIORITY"; objBoundcol2.UniqueName = "MKTPRIORITY"; objBoundcol2.DataType = typeof(Int32); objBoundcol2.DataField = "MKTPRIORITY"; objBoundcol2.HeaderStyle.Width = 100; objBoundcol2.HeaderStyle.Wrap = true; objBoundcol2.ItemStyle.Width = 100; objBoundcol2.ItemStyle.Wrap = true; objBoundcol2.Display = false; RadGridText.MasterTableView.Columns.Add(objBoundcol2); }public class MyTemplate : ITemplate { protected TextBox boolValue; private string colname; protected LiteralControl lControl; public MyTemplate(string cName) { colname = cName; } public void InstantiateIn(System.Web.UI.Control container) { boolValue = new TextBox(); boolValue.ID = colname; boolValue.Width = 50; container.Controls.Add(boolValue); } void boolValue_DataBinding(object sender, EventArgs e) { TextBox cBox = (TextBox)sender; GridDataItem container = (GridDataItem)cBox.NamingContainer; } }I Need to get the entered values in the Textboxes. Need it as a DataTable when a button is clicked.
protected void btnCalc_Click(object sender, EventArgs e) { DataTable Dt = new DataTable(); //Need to get the values in the Grid in this DataTable Dt. }Is there any option to get it.
Thank you.
-Anto