Hi All,
Lets see how to send the DataTable from Code behind to JavaScript. Some time we face the problem when we need to array the value from C# code behind to JavaScript use use script tag <%=variable_name%> Right we are also going to use the same approach. But the main point is how to convert the DataTable(or Dictionary or List of object) from C# to JavaScript.
Someone might come up with the thought to use the Repeater control. But its really typical, What about if I say you can get the C# DataTable as 2D array in JavaScript with no extra efforts??
:) Cool...
you just need to pass your DataTable in this method and it will create the Json Serialized array to be used in JavaScript. :)
Thats it.. now just goto you aspx file and access the "dataTable" in your JavaScript code..
Good to go.. :) Happy Code sharing.. :)
Lets see how to send the DataTable from Code behind to JavaScript. Some time we face the problem when we need to array the value from C# code behind to JavaScript use use script tag <%=variable_name%> Right we are also going to use the same approach. But the main point is how to convert the DataTable(or Dictionary or List of object) from C# to JavaScript.
Someone might come up with the thought to use the Repeater control. But its really typical, What about if I say you can get the C# DataTable as 2D array in JavaScript with no extra efforts??
:) Cool...
you just need to pass your DataTable in this method and it will create the Json Serialized array to be used in JavaScript. :)
public partial class RepeaterControlTesting : System.Web.UI.Page
{
public string dataTable;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
dataTable = ConvertDataTabletoString(getDT());
}
}
public string ConvertDataTabletoString(DataTable dt)
{
JavaScriptSerializer serializer = new JavaScriptSerializer();
List<List<object>> rows = new List<List<object>>();
List<object> row;
foreach (DataRow dr in dt.Rows)
{
row = new List<object>();
foreach (DataColumn col in dt.Columns)
{
row.Add(dr[col]);
}
rows.Add(row);
}
return serializer.Serialize(rows);
}
public DataTable getDT()
{
/// or get the DataTable from Database..
DataTable dt = new DataTable();
dt.Columns.Add("Col_int", typeof (int));
dt.Columns.Add("Col_string", typeof(string));
dt.Columns.Add("Col_bool", typeof(bool));
dt.Columns.Add("Col_4th", typeof(string));
dt.Columns.Add("Col_float", typeof(float));
DataRow dr;
for (int i = 1; i <= 5; i++)
{
dr = dt.NewRow();
dr[0] = i;
dr[1] = i + " Col_string";
dr[2] = (i%2 == 0);
dr[3] = i + " Col_4th";
dr[4] = (float)i;
dt.Rows.Add(dr);
}
return dt;
}
}
Thats it.. now just goto you aspx file and access the "dataTable" in your JavaScript code..
<body>
<div id="main">
</div>
<script>
var dataTable = <%= this.dataTable %>;
for (var i = 0; i < dataTable.length; i++) {
$("#main").append("| "+dataTable[i][0] + " | ");
$("#main").append(dataTable[i][1] + " | ");
$("#main").append(dataTable[i][2] + " | ");
$("#main").append(dataTable[i][3] + " | ");
$("#main").append(dataTable[i][4] + " |<br/><br/>");
}
</script>
</body>
Good to go.. :) Happy Code sharing.. :)

No comments:
Post a Comment