hi all,
Im working with a asp.net c# application and using sql server, as my database and using stored procedures.
And i've to generate dynamic check box and button's.which is users can click the checkbox and when user can submit at the time i have to get checked checkbox values and store into DB.
My question is: How to get dynamic checkbox checked values?
I have a code for creating dynamic checkbox and button
This is the code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Web.UI.HtmlControls;
public partial class Check_box_checkbox : System.Web.UI.Page
{
#region global var
AddValuesClass objAddValuesClass;
DataSet ds;
DataTable dt;
CheckBox cbid = new CheckBox();
#endregion
protected void Page_Load(object sender, EventArgs e)
{
generateckbox();
}
#region generate checkbox
public void generateckbox()
{
try
{
//creating a table dynamically
HtmlTable table = new HtmlTable();
HtmlTableRow tr = null;
HtmlTableCell tc = null;
// creating classfile obj
objAddValuesClass = new AddValuesClass();
//dataset obj
dt = new DataTable();
ds = objAddValuesClass.getmenuvalues1();
dt=ds.Tables[0];
//displaying labels for displaying column names in the table
if (dt.Columns.Count - 1 > 0)
{
tr = new HtmlTableRow();
for (int i = 0; i < dt.Columns.Count; i++)
{
tc = new HtmlTableCell();
Label lbl = new Label();
lbl.Text = dt.Columns[i].ColumnName;
lbl.ID = "lbl" + dt.Columns[i].ColumnName;
tc.Height = "50px";
tc.Width = "150px";
tc.Controls.Add(lbl);
tr.Controls.Add(tc);
table.Controls.Add(tr);
}
//creating checkbox for displaying records information
for (int j = 0; j < dt.Rows.Count; j++)
{
tr = new HtmlTableRow();
for (int k = 0; k < dt.Columns.Count; k++)
{
tc = new HtmlTableCell();
if (dt.Columns[k].ColumnName == "Name")
{
Label lbl = new Label();
lbl.ID = "lbl" + j + k;
lbl.Text = dt.Rows[j][dt.Columns[k].ToString()].ToString();
tc.Controls.Add(lbl);
tr.Controls.Add(tc);
}
else
{
CheckBox cbid = new CheckBox();
cbid.ID = "cbid" + j + k;
//cb.Text = dt.Rows[j][dt.Columns[k].ToString()].ToString();
tc.Controls.Add(cbid);
tr.Controls.Add(tc);
}
}
table.Controls.Add(tr);
}
//Creating Button
for (int b = 1; b <= 2; b++)
{
tc = new HtmlTableCell();
Button btn = new Button();
if (b == 1)
{
btn.ID = "btnadd" + b;
btn.Text = "Add";
btn.Click += new EventHandler(btn_Click);
tc.Controls.Add(btn);
tr.Controls.Add(tc);
}
else
{
btn.ID = "btnclear" + b;
btn.Text = "clear";
tc.Controls.Add(btn);
tr.Controls.Add(tc);
}
}
form1.Controls.Add(table);
}
}
catch (Exception exp)
{
throw new Exception(exp.Message);
}
}
#endregion
#region button Event handler
protected void btn_Click(object sender, EventArgs e)
{
try
{
// here i have to write that code
}
catch
{
}
}
#endregion
}
Please anyone help me
Thank u
BMXDad 23 Newbie Poster
Its sloppy, but works. But first you need to add an ID to the table so you can find it. After that you can loop through it and get your values.
table.ID = "dataTable";
protected void btn_Click(object sender, EventArgs e)
{
try
{
HtmlTable t = new HtmlTable();
t = (HtmlTable) FindControl("dataTable");
foreach (HtmlTableRow trc in t.Rows)
{
foreach (HtmlTableCell tc in trc.Cells)
{
foreach (Control htc in tc.Controls)
{
var cb = htc as CheckBox;
if (cb != null)
{
Response.Write(cb.ID + " " + cb.Checked + "<br />");
}
}
}
}
}
catch (Exception d)
{
Response.Write(d.Message);
}
Edited by BMXDad
raajsj 0 Newbie Poster
Thank u Mr.ggamble,
now it's working fine and i've one doubt i am using class file for this application and database Sql Server 2008. i have to get input value from UI to store database.for example my dadabase table name is "table1" and fields are (Name,Insert,Edit,Delete,View).i retrieve values from this to generate checkbox dynamically. upto this working fine. then i have to get user input from that dynamic checkboxes. then insert into "table2"-fields are (Grouppolicy_name,title(this field from table1-Name),staff_insert,staff_edit,staff_delete,staff_view.......like that). and i'm using stored procedure and class files.properties in class file.,
//properties
private string grouppolicy_name;
public string Grouppolicy_Name
{
get { return grouppolicy_name; }
set { grouppolicy_name = value; }
}
... like all table data_fields
when i get user input at the time i've to assign that input values into properties.,then i'll pass "storedprocedure_Name + private variable" to database.. this is the process.
so i have to check dynamic checkboxes one by one, if check box is checked "true" input value is "1" otherwise "0"
i don't know how to get input from checkboxes(dynamic) and assign input values into properties.
i attached displaying checkboxes
Edited by raajsj
BMXDad 23 Newbie Poster
Are you asking how to add the results to a database call?
sqlConnection = new SqlConnection(dbConnectionString);
SqlCommand command = new SqlCommand("sp_StoredProcedure", sqlConnection);
command.CommandType = CommandType.StoredProcedure;
command.Parameters.Add("@Id", SqlDbType.VarChar).Value = cbid.Text;
command.Parameters.Add("@Checked", SqlDbType.Boolean).Value = cbid.checked;
sqlConnection.Open();
command.ExecuteNonQuery();
sqlConnection.Close();
raajsj 0 Newbie Poster
Mr.ggamble,
This is my current out put. now i want to get input values from these checkboxes.but i dont know.
raajsj 0 Newbie Poster
Hai All,
i am developing web application. in my application three users (Admin,Staff,Student), Admin can give permission to these two users(Staff and student).
Staff module : 1.User Information - options(Edit and Update)
2.Subject Details - options(Edit and Update)
3.Marks Details - options(Add,Edit,Update)
Student Module: 1.User Information - options(Edit and Update)
2.Subject Details - option(view)
3.Student Marks - options(view)
So Here Admin can give permission dynamically for these two users, this is my logic.
In my database there is two tables "Table1" and "Table2"
Table1 Fields: ModuleTitle varchar(50),
f_Insert int,
f_Edit int,
f_Delete int,
f_view int
in this table field values are used to generate dynamic checkbox.
Next,
Table2 Fields: Userpolicyname
[remaining fields are according to the "Table1"-ModuleTitle field.
for example: Table1 - ModuleTitle field value is "UserInfo"]
so remaining fields are : UserInfo_ins
UserInfo_Edit
UserInfo_Delete
UserInfo_view
...
like that.
Then my application I'm using "Stored procedure" and "Class File"
This is my classfile:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Data.SqlClient;
public class AddValuesClass
{
#region global var
DataBaseClass objDataBaseClass;
string returnString;
Boolean stateOfInsertion;
DataTable Table;
DataSet ds;
#endregion
#region Properties
private string moduletitle;
public string ModuleTitle
{
get { return moduletitle; }
set { moduletitle = value; }
}
private int ins;
public int Ins
{
get { return ins; }
set { ins = value; }
}
private int edit;
public int Edit
{
get { return edit; }
set { edit = value; }
}
private int delete;
public int Delete
{
get { return delete; }
set { delete = value; }
}
private int view;
public int View
{
get { return view; }
set { view = value; }
}
#endregion
#region Table2 properties
private string policyname;
public string PolicyName
{
get { return policyname; }
set { policyname = value; }
}
private int userinfo_ins;
public int Userinfo_ins
{
get { return userinfo_ins; }
set { userinfo_ins = value; }
}
private int userinfo_edit;
public int Userinfo_Edit
{
get { return userinfo_edit; }
set { userinfo_edit = value; }
}
private int userinfo_delete;
public int Userinfo_delete
{
get { return userinfo_delete; }
set { userinfo_delete = value; }
}
private int userinfo_view;
public int Userinfo_View
{
get { return userinfo_View; }
set { userinfo_view = value; }
}
#endregion
#region insertion part
public Boolean Insertvalues()
{
Boolean stateOfInsertion;
objDataBaseClass = new DataBaseClass();
stateOfInsertion = objDataBaseClass.GetExecuteNonquey("spInservalue'" + name + "','" + ins + "','" + edit + "','" + delete + "','" + view + "'");
return stateOfInsertion;
}
#endregion
#region
public DataTable getmenuvalues()
{
objDataBaseClass = new DataBaseClass();
Table = new DataTable();
Table = objDataBaseClass.GetDataTable("sp_getvalues");
return Table;
}
#endregion
public AddValuesClass()
{
//
// TODO: Add constructor logic here
//
}
}
i want to get user inputs from dynamic checkbox to assign table2 properties..
now my codings done upto generate dynamic checkboxes...
i don't know how to get values from dynamic checkbox.
this is my code behind page code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Web.UI.HtmlControls;
public partial class Check_box_checkbox : System.Web.UI.Page
{
#region global var
AddValuesClass objAddValuesClass;
DataSet ds;
DataTable dt;
CheckBox cbid = new CheckBox();
#endregion
protected void Page_Load(object sender, EventArgs e)
{
generateckbox();
}
#region generate checkbox
public void generateckbox()
{
try
{
//creating a table dynamically
HtmlTable table = new HtmlTable();
table.ID = "dataTable";
HtmlTableRow tr = null;
HtmlTableCell tc = null;
// creating classfile obj
objAddValuesClass = new AddValuesClass();
//dataset obj
dt = new DataTable();
ds = objAddValuesClass.getmenuvalues1();
dt=ds.Tables[0];
//displaying labels for displaying column names in the table
if (dt.Columns.Count - 1 > 0)
{
tr = new HtmlTableRow();
for (int i = 0; i < dt.Columns.Count; i++)
{
tc = new HtmlTableCell();
Label lbl = new Label();
lbl.Text = dt.Columns[i].ColumnName;
lbl.ID = "lbl" + dt.Columns[i].ColumnName;
tc.Height = "50px";
tc.Width = "150px";
tc.Controls.Add(lbl);
tr.Controls.Add(tc);
table.Controls.Add(tr);
}
//creating checkbox for displaying records information
for (int j = 0; j < dt.Rows.Count; j++)
{
tr = new HtmlTableRow();
for (int k = 0; k < dt.Columns.Count; k++)
{
tc = new HtmlTableCell();
if (dt.Columns[k].ColumnName == "Title")
{
Label lbl = new Label();
lbl.ID = "lbl" + j + k;
//string lblid = lbl.ID = "lbl" + j + k;
lbl.Text = dt.Rows[j][dt.Columns[k].ToString()].ToString();
tc.Controls.Add(lbl);
tr.Controls.Add(tc);
}
else
{
CheckBox cbid = new CheckBox();
cbid.ID = "cbid" + j + k;
//cbid.Text = dt.Rows[j][dt.Columns[k].ToString()].ToString();
//cbid.CheckedChanged += new EventHandler(cbid_CheckedChanged);
tc.Controls.Add(cbid);
tr.Controls.Add(tc);
}
}
table.Controls.Add(tr);
}
//end creating checkbox for displaying records information
//button creation
for (int b = 1; b <= 2; b++)
{
tc = new HtmlTableCell();
Button btn = new Button();
if (b == 1)
{
btn.ID = "btnadd" + b;
btn.Text = "Add";
btn.Click += new EventHandler(btn_Click);
tc.Controls.Add(btn);
tr.Controls.Add(tc);
}
else
{
btn.ID = "btnclear" + b;
btn.Text = "clear";
tc.Controls.Add(btn);
tr.Controls.Add(tc);
}
}
form1.Controls.Add(table);
}
}
catch (Exception exp)
{
throw new Exception(exp.Message);
}
}
#endregion
//#region Checkbox Event
//void cbid_CheckedChanged(object sender, EventArgs e)
//{
// //throw new NotImplementedException();
//}
//#endregion
#region Event handler
protected void btn_Click(object sender, EventArgs e)
{
try
{
HtmlTable t = new HtmlTable();
t = (HtmlTable)FindControl("dataTable");
foreach (HtmlTableRow trc in t.Rows)
{
foreach (HtmlTableCell tc in trc.Cells)
{
foreach (Control htc in tc.Controls)
{
var cb = htc as CheckBox;
if (cb != null)
{
}
}
}
}
}
catch (Exception d)
{
Response.Write(d.Message);
}
}
#endregion
}
now i'm totaly disappointed due to this.,
if anyone know pls help me ...
Thank you
Be a part of the DaniWeb community
We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.