Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > ASP .Net > ASP .Net Datagrid Control > Howto bind CheckBox to the datagrid/ Then update the database field when the checkbox is clicked.

Reply
Thread Tools

Howto bind CheckBox to the datagrid/ Then update the database field when the checkbox is clicked.

 
 
Joey Pang
Guest
Posts: n/a
 
      06-10-2005
I am trying to update the database field when the checkbox is clicked.

I am trying to modified the following solution but.. got stuck on the
ItemCommand Events where
Dim prodchknew As CheckBox = e.Item.FindControl("chk")
cannot find the control.

I am trying to put the ItemCommand Code into ItemBound Event but seems to be
stuck on the above line ..
Anyone got ideas?

Thanks a bunch,
Joey


Solution:
webform1.aspx
<asp:datagrid id="DataGrid1"
style="Z-INDEX: 101; LEFT: 9px; POSITION: absolute; TOP: 15px"
runat="server" AutoGenerateColumns="False"
DataKeyField="Productid">
<Columns>
<asp:TemplateColumn HeaderText="ProductName">
<ItemTemplate>
<asp:CheckBox id=chk runat="server"
Text =<%# DataBinder.Eval(Container.DataItem, "ProductName") %>
checked='<%# DataBinder.Eval(Container.DataItem, "Discontinued") %>'>
</asp:CheckBox>

</ItemTemplate>
</asp:TemplateColumn>
<asp:ButtonColumn ButtonType="PushButton"
CommandName="Update" Text="Update"></asp:ButtonColumn>
</Columns>
</asp:datagrid>



webform1.asp.vb
Step 1:Simple Binding with the DataGrid. The Products Table has the Field
Discontinued (DataType:bit) Based on the value 0/1 of the Discontinued field
uncheck/check the Checkbox.
Dim myconnection As SqlConnection
Dim myda As SqlDataAdapter
Dim mycmd As SqlCommand
Dim ds As DataSet
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
If Not Page.IsPostBack Then
bindData()
End If
End Sub
Sub bindData()
myconnection = New
SqlConnection("Server=localhost;uid=sa;password=;d atabase=northwind;")
myda = New SqlDataAdapter("Select * from Products where
productid<4", myconnection)
ds = New DataSet()
myda.Fill(ds, "AllTables")
DataGrid1.DataSource = ds
DataGrid1.DataBind()
End Sub



Step 2: If the user check's/uncheck's the original value of the Checkbox and
clicks the button the new checkbox value should be stored in the Database
table.
Private Sub DataGrid1_ItemCommand(ByVal source As Object, _
ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs ) Handles
DataGrid1.ItemCommand
Dim prodchknew As CheckBox = e.Item.FindControl("chk")
Dim updval As String
If prodchknew.Checked Then
updval = "1"
Else
updval = "0"
End If

If e.CommandName = "Update" Then
myconnection = New
SqlConnection("Server=localhost;uid=sa;password=;d atabase=northwind;")
Dim strsql As String = "Update Products set Discontinued='" &
updval & "'" & _
" where Productid=" & DataGrid1.DataKeys(CInt(e.Item.ItemIndex))
' Response.Write(strsql)
mycmd = New SqlCommand(strsql, myconnection)
myconnection.Open()
mycmd.ExecuteNonQuery()
bindData()
End If
End Sub




Sushila S. Patel, Microsoft .NET MVP


 
Reply With Quote
 
 
 
 
Kim Quigley
Guest
Posts: n/a
 
      06-10-2005
Can you post your ItemDataBound method?

Whenever I have to put code in that method, I always forget to make sure
that the current item isn't a header or footer:
If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType =
ListItemType.AlternatingItem Then

End If


"Joey Pang" <(E-Mail Removed)> wrote in message
news:%23ERL$(E-Mail Removed)...
>I am trying to update the database field when the checkbox is clicked.
>
> I am trying to modified the following solution but.. got stuck on the
> ItemCommand Events where
> Dim prodchknew As CheckBox = e.Item.FindControl("chk")
> cannot find the control.
>
> I am trying to put the ItemCommand Code into ItemBound Event but seems to
> be stuck on the above line ..
> Anyone got ideas?
>
> Thanks a bunch,
> Joey
>
>
> Solution:
> webform1.aspx
> <asp:datagrid id="DataGrid1"
> style="Z-INDEX: 101; LEFT: 9px; POSITION: absolute; TOP: 15px"
> runat="server" AutoGenerateColumns="False"
> DataKeyField="Productid">
> <Columns>
> <asp:TemplateColumn HeaderText="ProductName">
> <ItemTemplate>
> <asp:CheckBox id=chk runat="server"
> Text =<%# DataBinder.Eval(Container.DataItem, "ProductName") %>
> checked='<%# DataBinder.Eval(Container.DataItem, "Discontinued") %>'>
> </asp:CheckBox>
>
> </ItemTemplate>
> </asp:TemplateColumn>
> <asp:ButtonColumn ButtonType="PushButton"
> CommandName="Update" Text="Update"></asp:ButtonColumn>
> </Columns>
> </asp:datagrid>
>
>
>
> webform1.asp.vb
> Step 1:Simple Binding with the DataGrid. The Products Table has the Field
> Discontinued (DataType:bit) Based on the value 0/1 of the Discontinued
> field uncheck/check the Checkbox.
> Dim myconnection As SqlConnection
> Dim myda As SqlDataAdapter
> Dim mycmd As SqlCommand
> Dim ds As DataSet
> Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
> System.EventArgs) Handles MyBase.Load
> If Not Page.IsPostBack Then
> bindData()
> End If
> End Sub
> Sub bindData()
> myconnection = New
> SqlConnection("Server=localhost;uid=sa;password=;d atabase=northwind;")
> myda = New SqlDataAdapter("Select * from Products where
> productid<4", myconnection)
> ds = New DataSet()
> myda.Fill(ds, "AllTables")
> DataGrid1.DataSource = ds
> DataGrid1.DataBind()
> End Sub
>
>
>
> Step 2: If the user check's/uncheck's the original value of the Checkbox
> and clicks the button the new checkbox value should be stored in the
> Database table.
> Private Sub DataGrid1_ItemCommand(ByVal source As Object, _
> ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs ) Handles
> DataGrid1.ItemCommand
> Dim prodchknew As CheckBox = e.Item.FindControl("chk")
> Dim updval As String
> If prodchknew.Checked Then
> updval = "1"
> Else
> updval = "0"
> End If
>
> If e.CommandName = "Update" Then
> myconnection = New
> SqlConnection("Server=localhost;uid=sa;password=;d atabase=northwind;")
> Dim strsql As String = "Update Products set Discontinued='" &
> updval & "'" & _
> " where Productid=" & DataGrid1.DataKeys(CInt(e.Item.ItemIndex))
> ' Response.Write(strsql)
> mycmd = New SqlCommand(strsql, myconnection)
> myconnection.Open()
> mycmd.ExecuteNonQuery()
> bindData()
> End If
> End Sub
>
>
>
>
> Sushila S. Patel, Microsoft .NET MVP
>



 
Reply With Quote
 
 
 
 
Kim Quigley
Guest
Posts: n/a
 
      06-10-2005
This page has a good example for doing something when a checkbox in a
datagrid is changed:

http://www.geekswithblogs.net/sgreen.../12/14871.aspx

This is basically what it says:

In the aspx page, modify the checkbox tag by adding the OnCheckedChanged
attribute, and setting it to the name of the sub that you just created
above. You'll also need autopostback set to true.
<ItemTemplate>
<asp:CheckBox id="CheckBox1" runat="server" AutoPostBack="True"
OnCheckedChanged="Check_Clicked">asp:CheckBox>
>



Now when the checkbox is clicked, the Check_Clicked event will be
fired. Add the following code to the Check_Clicked procedure:

Protected Sub Check_Clicked(ByVal sender As Object, ByVal e As EventArgs)
Dim ck1 As CheckBox = CType(sender, CheckBox)
Dim dgItem As DataGridItem = CType(ck1.NamingContainer,
DataGridItem)
'now we've got what we need!
Label1.Text = "You selected row " & dgItem.Cells(0).Text
End Sub



 
Reply With Quote
 
Joey Pang
Guest
Posts: n/a
 
      06-13-2005
Thank you so much Kim... Let met try it out
"Kim Quigley" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
> This page has a good example for doing something when a checkbox in a
> datagrid is changed:
>
> http://www.geekswithblogs.net/sgreen.../12/14871.aspx
>
> This is basically what it says:
>
> In the aspx page, modify the checkbox tag by adding the OnCheckedChanged
> attribute, and setting it to the name of the sub that you just created
> above. You'll also need autopostback set to true.
> <ItemTemplate>
> <asp:CheckBox id="CheckBox1" runat="server" AutoPostBack="True"
> OnCheckedChanged="Check_Clicked">asp:CheckBox>
>>

>
>
> Now when the checkbox is clicked, the Check_Clicked event will be
> fired. Add the following code to the Check_Clicked procedure:
>
> Protected Sub Check_Clicked(ByVal sender As Object, ByVal e As EventArgs)
> Dim ck1 As CheckBox = CType(sender, CheckBox)
> Dim dgItem As DataGridItem = CType(ck1.NamingContainer,
> DataGridItem)
> 'now we've got what we need!
> Label1.Text = "You selected row " & dgItem.Cells(0).Text
> End Sub
>
>
>



 
Reply With Quote
 
Joey Pang
Guest
Posts: n/a
 
      06-13-2005
It worked!! Thank you Thank you Kim You save my day...

"Kim Quigley" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
> This page has a good example for doing something when a checkbox in a
> datagrid is changed:
>
> http://www.geekswithblogs.net/sgreen.../12/14871.aspx
>
> This is basically what it says:
>
> In the aspx page, modify the checkbox tag by adding the OnCheckedChanged
> attribute, and setting it to the name of the sub that you just created
> above. You'll also need autopostback set to true.
> <ItemTemplate>
> <asp:CheckBox id="CheckBox1" runat="server" AutoPostBack="True"
> OnCheckedChanged="Check_Clicked">asp:CheckBox>
>>

>
>
> Now when the checkbox is clicked, the Check_Clicked event will be
> fired. Add the following code to the Check_Clicked procedure:
>
> Protected Sub Check_Clicked(ByVal sender As Object, ByVal e As EventArgs)
> Dim ck1 As CheckBox = CType(sender, CheckBox)
> Dim dgItem As DataGridItem = CType(ck1.NamingContainer,
> DataGridItem)
> 'now we've got what we need!
> Label1.Text = "You selected row " & dgItem.Cells(0).Text
> End Sub
>
>
>



 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Database Database Database Database scott93727@gmail.com Computer Information 0 09-27-2012 02:43 AM
DataBase DataBase DataBase DataBase scott93727@gmail.com Computer Information 0 09-26-2012 09:40 AM
Required user to read - then click a checkbox and then a button becomes enabled. Mufasa ASP .Net 7 09-04-2007 06:04 PM
How to Bind Checked value of checkbox into sql Server database =?Utf-8?B?SGVtYW50?= ASP .Net 0 03-28-2007 12:09 AM
Help. SessionID is x then y then x then y BodiKlamph@gmail.com ASP General 0 09-03-2005 03:02 PM



Advertisments