I know this is probably a very basic question but I am fairly new to asp.net and very new to the Telerik controls.
I have a basic page with a text box and button and I want to fill a RadGrid with data from a sql query when the button is clicked using the data that is typed into the textbox as a variable for my query. When I put my query into the form load event and prepopulate the textbox the query works and the grid is populated. When I try the same code in the click event of the button I don't get any data in the grid. Do I need to call a refresh of the control or something?
I have a basic page with a text box and button and I want to fill a RadGrid with data from a sql query when the button is clicked using the data that is typed into the textbox as a variable for my query. When I put my query into the form load event and prepopulate the textbox the query works and the grid is populated. When I try the same code in the click event of the button I don't get any data in the grid. Do I need to call a refresh of the control or something?
4 Answers, 1 is accepted
0
Shinu
Top achievements
Rank 2
answered on 17 Jun 2013, 04:38 AM
Hi,
Try the following code snippet.
C#:
Thanks,
Shinu.
Try the following code snippet.
C#:
protected void btnbind_Click(object sender, EventArgs e) { SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ToString()); con.Open(); SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM table1 where id="+Convert.ToInt32(textbox1.Text)+"", con); DataTable dt = new DataTable(); adapter.Fill(dt); con.Close(); Radgrid1.DataSource = dt; Radgrid1.DataBind(); }Thanks,
Shinu.
0
Jason
Top achievements
Rank 1
answered on 17 Jun 2013, 01:18 PM
Hi thanks for the reply. My code is in VB but I think what I had tried is similar to your example. Here is my button click code. Am I missing something?
Protected Sub btnSubmit_Click(sender As Object, e As EventArgs) Handles btnSubmit.Click Dim con As New SqlConnection
Dim SqlDataAdapter As New SqlDataAdapter() Dim selectquery As String = "select sys.netbios_name0 as Name, os.caption0 as OS, os.csdversion0 as Service_Pack, DATEADD(mi,(sys.pwdLastSet0 / 600000000) + DATEDIFF(Minute,GetUTCDate(),GetDate()),CAST('1/1/1601' AS DATETIME2)) as AD_Password_Last_Set,cs.Manufacturer0 as HW_Vendor, cs.Model0 as Model, sys.distinguishedname0 as OU " + _ "from resswcmsprip01.sccm_ec0.dbo.v_r_system sys " + _ "left join resswcmsprip01.sccm_ec0.dbo.v_gs_operating_system os on os.resourceid=sys.resourceid " + _ "left join resswcmsprip01.sccm_ec0.dbo.v_gs_computer_system cs on cs.resourceid=sys.resourceid " + _ "left join resswcmsprip01.sccm_ec0.dbo.v_gs_system_console_user cu on cu.resourceid=sys.resourceid " + _ "join (select resourceid, MAX(lastconsoleuse0) as [MaxConsoleUse] " + _ "from resswcmsprip01.sccm_ec0.dbo.v_gs_system_console_user cu2 " + _ "group by resourceid) as tblMax on cu.resourceid=tblmax.resourceid and cu.lastconsoleuse0=tblMax.MaxConsoleUse " + _ "where sys.netbios_name0 like '%" & txtInput.Text & "%'" Dim dtTable As DataTable Dim rootWebConfig As System.Configuration.Configuration rootWebConfig = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("/AppCompat") Dim connString As System.Configuration.ConnectionStringSettings If (rootWebConfig.ConnectionStrings.ConnectionStrings.Count > 0) Then connString = rootWebConfig.ConnectionStrings.ConnectionStrings("csSCCM") End If Try con.ConnectionString = rootWebConfig.ConnectionStrings.ConnectionStrings("csSCCM").ToString dtTable = New DataTable() con.Open() SqlDataAdapter.SelectCommand = New SqlCommand(selectquery, con) SqlDataAdapter.Fill(dtTable) rdgMachines.DataSource = dtTable rdgMachines.DataBind() Catch ex As Exception 'MessageBox.Show("Error while connecting to SQL Server. " & ex.Message) Finally con.Close() 'Close connection on error or not End Try End Sub0
Jason
Top achievements
Rank 1
answered on 18 Jun 2013, 05:18 PM
I am trying to work through this but I am not having any luck. I thought calling rebind() would be the solution but it doesn't make a difference. When I step through the code it calls NeedDataSource and the code in there looks like it is ok but nothing ever gets populated in the grid.
Protected Sub btnSubmit_Click(sender As Object, e As EventArgs) Handles btnSubmit.Click rdgMachines.Rebind()End SubProtected Sub rdgMachines_NeedDataSource(sender As Object, e As GridNeedDataSourceEventArgs) Handles rdgMachines.NeedDataSource Dim con As New SqlConnection ' Dim strCurrItem As String Dim SqlDataAdapter As New SqlDataAdapter() Dim selectquery As String = "select sys.netbios_name0 as Name, os.caption0 as OS, os.csdversion0 as Service_Pack, DATEADD(mi,(sys.pwdLastSet0 / 600000000) + DATEDIFF(Minute,GetUTCDate(),GetDate()),CAST('1/1/1601' AS DATETIME2)) as AD_Password_Last_Set,cs.Manufacturer0 as HW_Vendor, cs.Model0 as Model, sys.distinguishedname0 as OU " + _ "from resswcmsprip01.sccm_ec0.dbo.v_r_system sys " + _ "left join resswcmsprip01.sccm_ec0.dbo.v_gs_operating_system os on os.resourceid=sys.resourceid " + _ "left join resswcmsprip01.sccm_ec0.dbo.v_gs_computer_system cs on cs.resourceid=sys.resourceid " + _ "left join resswcmsprip01.sccm_ec0.dbo.v_gs_system_console_user cu on cu.resourceid=sys.resourceid " + _ "join (select resourceid, MAX(lastconsoleuse0) as [MaxConsoleUse] " + _ "from resswcmsprip01.sccm_ec0.dbo.v_gs_system_console_user cu2 " + _ "group by resourceid) as tblMax on cu.resourceid=tblmax.resourceid and cu.lastconsoleuse0=tblMax.MaxConsoleUse " + _ "where sys.netbios_name0 like '%" & txtInput.Text & "%'" Dim dtTable As DataTable Dim rootWebConfig As System.Configuration.Configuration rootWebConfig = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("/AppCompat") Dim connString As System.Configuration.ConnectionStringSettings If (rootWebConfig.ConnectionStrings.ConnectionStrings.Count > 0) Then connString = rootWebConfig.ConnectionStrings.ConnectionStrings("csSCCM") End If Try con.ConnectionString = rootWebConfig.ConnectionStrings.ConnectionStrings("csSCCM").ToString dtTable = New DataTable() con.Open() SqlDataAdapter.SelectCommand = New SqlCommand(selectquery, con) SqlDataAdapter.Fill(dtTable) rdgMachines.DataSource = dtTable rdgMachines.DataBind() Catch ex As Exception 'MessageBox.Show("Error while connecting to SQL Server. " & ex.Message) Finally con.Close() 'Close connection on error or not End TryEnd Sub0
Jason
Top achievements
Rank 1
answered on 18 Jun 2013, 06:31 PM
I removed the radgrid control from my project and added a new one and everything works fine. Guess it was an anomaly.