Velocity Reviews

Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   ASP .Net Datagrid Control (http://www.velocityreviews.com/forums/f60-asp-net-datagrid-control.html)
-   -   Howto bind CheckBox to the datagrid/ Then update the database field when the checkbox is clicked. (http://www.velocityreviews.com/forums/t762059-howto-bind-checkbox-to-the-datagrid-then-update-the-database-field-when-the-checkbox-is-clicked.html)

Joey Pang 06-10-2005 03:23 AM

Howto bind CheckBox to the datagrid/ Then update the database field when the checkbox is clicked.
 
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



Kim Quigley 06-10-2005 06:39 PM

Re: Howto bind CheckBox to the datagrid/ Then update the database field when the checkbox is clicked.
 
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" <joeyjypang@netscape.net> wrote in message
news:%23ERL$uWbFHA.3464@tk2msftngp13.phx.gbl...
>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
>




Kim Quigley 06-10-2005 06:52 PM

Re: Howto bind CheckBox to the datagrid/ Then update the database field when the checkbox is clicked.
 
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




Joey Pang 06-13-2005 01:38 AM

Re: Howto bind CheckBox to the datagrid/ Then update the database field when the checkbox is clicked.
 
Thank you so much Kim... :D Let met try it out :D
"Kim Quigley" <kimTquigley@hotmail.com> wrote in message
news:OYjJQ2ebFHA.1404@TK2MSFTNGP09.phx.gbl...
> 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
>
>
>




Joey Pang 06-13-2005 02:29 AM

Re: Howto bind CheckBox to the datagrid/ Then update the database field when the checkbox is clicked.
 
It worked!! Thank you Thank you Kim :D :D :D You save my day...

"Kim Quigley" <kimquigley@hotmail.com> wrote in message
news:OYjJQ2ebFHA.1404@TK2MSFTNGP09.phx.gbl...
> 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
>
>
>





All times are GMT. The time now is 10:15 AM.

Powered by vBulletin®. Copyright ©2000 - 2013, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57