Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > ASP .Net > ASP .Net Datagrid Control > Add a new record in GridView

Reply
Thread Tools

Add a new record in GridView

 
 
bruno
Guest
Posts: n/a
 
      09-10-2006
I experimented inserting new rows in a table using a GridView (show footers,
make all columns and commands into templatefields, add textboxes to the
footer template of each column, add an Insert link in the footer, add a
onInserting eventhandler…).

Now, in case of an empty datasource I can't find the way to insert the first
record. I tried to put textboxes in the EmptyDataTemplate but I found a lot
of problems in getting user's input.

The logic I'm trying to implement is:
A first gridview displays rows from a first SQL table. Selecting a row from
the first gridview, the second gridview shows related record from a second
table.
If there are no related records, how can I programmatically let the user
insert the first row?

Many Thanks.

--
bruno
 
Reply With Quote
 
 
 
 
Walter Wang [MSFT]
Guest
Posts: n/a
 
      09-11-2006
Hi Bruno,

What exactly problems are you getting when using EmptyDataTemplate?

You may take a look at
http://geekswithblogs.net/casualjim/.../04/77151.aspx for a
working example on how to use this feature.

Please tell me what do you think of this solution, I would be glad to
continue work with you if you need anything else.

Sincerely,
Walter Wang ((E-Mail Removed), remove 'online.')
Microsoft Online Community Support

==================================================
Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/subscripti...ult.aspx#notif
ications. If you are using Outlook Express, please make sure you clear the
check box "Tools/Options/Read: Get 300 headers at a time" to see your reply
promptly.

Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 1 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions or complex
project analysis and dump analysis issues. Issues of this nature are best
handled working with a dedicated Microsoft Support Engineer by contacting
Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/subscripti...t/default.aspx.
==================================================

This posting is provided "AS IS" with no warranties, and confers no rights.

 
Reply With Quote
 
 
 
 
bruno
Guest
Posts: n/a
 
      09-11-2006
Hi Walter,
from the working example you gave me, what is the VB.NET equivalent of
Controls[0].Controls[0]?
GridView1.Controls[0].Controls[0].GetType().Name or
GridView1.Controls[0].Controls[0].FindControl("tbEmptyInsert")

The problem I found in using EmptyDataTemplate is how to access labels and
textboxes in that section, like I do in FooterRowTemplate.
Thank you.
--
bruno


"Walter Wang [MSFT]" wrote:

> Hi Bruno,
>
> What exactly problems are you getting when using EmptyDataTemplate?
>
> You may take a look at
> http://geekswithblogs.net/casualjim/.../04/77151.aspx for a
> working example on how to use this feature.
>
> Please tell me what do you think of this solution, I would be glad to
> continue work with you if you need anything else.
>
> Sincerely,
> Walter Wang ((E-Mail Removed), remove 'online.')
> Microsoft Online Community Support
>
> ==================================================
> Get notification to my posts through email? Please refer to
> http://msdn.microsoft.com/subscripti...ult.aspx#notif
> ications. If you are using Outlook Express, please make sure you clear the
> check box "Tools/Options/Read: Get 300 headers at a time" to see your reply
> promptly.
>
> Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
> where an initial response from the community or a Microsoft Support
> Engineer within 1 business day is acceptable. Please note that each follow
> up response may take approximately 2 business days as the support
> professional working with you may need further investigation to reach the
> most efficient resolution. The offering is not appropriate for situations
> that require urgent, real-time or phone-based interactions or complex
> project analysis and dump analysis issues. Issues of this nature are best
> handled working with a dedicated Microsoft Support Engineer by contacting
> Microsoft Customer Support Services (CSS) at
> http://msdn.microsoft.com/subscripti...t/default.aspx.
> ==================================================
>
> This posting is provided "AS IS" with no warranties, and confers no rights.
>
>

 
Reply With Quote
 
Walter Wang [MSFT]
Guest
Posts: n/a
 
      09-12-2006
Hi Bruno,

Just use GridView1.Controls(0).Controls(0). Following is the complete code
listing of VB.NET equivalent of the example:

Imports System.Data


Partial Class Default3
Inherits System.Web.UI.Page

Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
If Not IsPostBack Then
Dim dt As New DataTable
Dim dc As New DataColumn("Name")
dt.Columns.Add(dc)
Dim dr As DataRow = dt.NewRow()
dr("Name") = "Ivan"

GridView1.DataSource = dt
GridView1.DataBind()
End If

RecurseControls(GridView1.Controls(0).Controls)
Label1.Text += GridView1.Controls(0).Controls(0).GetType().Name +
"<br />"
End Sub

Sub RecurseControls(ByVal ctls As ControlCollection)
For Each ctl As Control In ctls
If Not ctl.HasControls() Then
Label1.Text += ctl.ClientID + " " + ctl.GetType().Name +
"<br />"
Else
RecurseControls(ctl.Controls)
End If
Next
End Sub

Protected Sub GridView1_RowCommand1(ByVal sender As Object, ByVal e As
System.Web.UI.WebControls.GridViewCommandEventArgs ) Handles
GridView1.RowCommand
If e.CommandName = "EmptyInsert" Then
Dim tbEmptyInsert As TextBox =
GridView1.Controls(0).Controls(0).FindControl("tbE mptyInsert")
Label1.Text = String.Format("You would have inserted the name:
<b>{0}</b> from the emptydatatemplate", tbEmptyInsert.Text)
End If
If e.CommandName = "Insert" Then
Dim tbInsert As TextBox =
GridView1.FooterRow.FindControl("tbInsert")
Label1.Text = String.Format("You would have inserted the name:
<b>{0}</b> from the footerrow", tbInsert.Text)
End If
End Sub
End Class

I hope this helps. Please feel free to post here if anything is unclear.

Regards,
Walter Wang ((E-Mail Removed), remove 'online.')
Microsoft Online Community Support

==================================================
When responding to posts, please "Reply to Group" via your newsreader so
that others may learn and benefit from your issue.
==================================================

This posting is provided "AS IS" with no warranties, and confers no rights.

 
Reply With Quote
 
bruno
Guest
Posts: n/a
 
      09-12-2006
I don't know way I found problems the first time I used
GridView1.Controls(0).Controls(0) as you suggested me. it's my fault.
Your sample helped me.
Thank you Walter.
--
bruno


"Walter Wang [MSFT]" wrote:

> Hi Bruno,
>
> Just use GridView1.Controls(0).Controls(0). Following is the complete code
> listing of VB.NET equivalent of the example:
>
> Imports System.Data
>
>
> Partial Class Default3
> Inherits System.Web.UI.Page
>
> Protected Sub Page_Load(ByVal sender As Object, ByVal e As
> System.EventArgs) Handles Me.Load
> If Not IsPostBack Then
> Dim dt As New DataTable
> Dim dc As New DataColumn("Name")
> dt.Columns.Add(dc)
> Dim dr As DataRow = dt.NewRow()
> dr("Name") = "Ivan"
>
> GridView1.DataSource = dt
> GridView1.DataBind()
> End If
>
> RecurseControls(GridView1.Controls(0).Controls)
> Label1.Text += GridView1.Controls(0).Controls(0).GetType().Name +
> "<br />"
> End Sub
>
> Sub RecurseControls(ByVal ctls As ControlCollection)
> For Each ctl As Control In ctls
> If Not ctl.HasControls() Then
> Label1.Text += ctl.ClientID + " " + ctl.GetType().Name +
> "<br />"
> Else
> RecurseControls(ctl.Controls)
> End If
> Next
> End Sub
>
> Protected Sub GridView1_RowCommand1(ByVal sender As Object, ByVal e As
> System.Web.UI.WebControls.GridViewCommandEventArgs ) Handles
> GridView1.RowCommand
> If e.CommandName = "EmptyInsert" Then
> Dim tbEmptyInsert As TextBox =
> GridView1.Controls(0).Controls(0).FindControl("tbE mptyInsert")
> Label1.Text = String.Format("You would have inserted the name:
> <b>{0}</b> from the emptydatatemplate", tbEmptyInsert.Text)
> End If
> If e.CommandName = "Insert" Then
> Dim tbInsert As TextBox =
> GridView1.FooterRow.FindControl("tbInsert")
> Label1.Text = String.Format("You would have inserted the name:
> <b>{0}</b> from the footerrow", tbInsert.Text)
> End If
> End Sub
> End Class
>
> I hope this helps. Please feel free to post here if anything is unclear.
>
> Regards,
> Walter Wang ((E-Mail Removed), remove 'online.')
> Microsoft Online Community Support
>
> ==================================================
> When responding to posts, please "Reply to Group" via your newsreader so
> that others may learn and benefit from your issue.
> ==================================================
>
> This posting is provided "AS IS" with no warranties, and confers no rights.
>
>

 
Reply With Quote
 
Prabakar Samiyappan
Guest
Posts: n/a
 
      03-10-2007
If there is no row matched Add a Empty row to the second table dataset and
bind the dataset to Datagrid now the new blank row will be added ..




"bruno" wrote:

> I don't know way I found problems the first time I used
> GridView1.Controls(0).Controls(0) as you suggested me. it's my fault.
> Your sample helped me.
> Thank you Walter.
> --
> bruno
>
>
> "Walter Wang [MSFT]" wrote:
>
> > Hi Bruno,
> >
> > Just use GridView1.Controls(0).Controls(0). Following is the complete code
> > listing of VB.NET equivalent of the example:
> >
> > Imports System.Data
> >
> >
> > Partial Class Default3
> > Inherits System.Web.UI.Page
> >
> > Protected Sub Page_Load(ByVal sender As Object, ByVal e As
> > System.EventArgs) Handles Me.Load
> > If Not IsPostBack Then
> > Dim dt As New DataTable
> > Dim dc As New DataColumn("Name")
> > dt.Columns.Add(dc)
> > Dim dr As DataRow = dt.NewRow()
> > dr("Name") = "Ivan"
> >
> > GridView1.DataSource = dt
> > GridView1.DataBind()
> > End If
> >
> > RecurseControls(GridView1.Controls(0).Controls)
> > Label1.Text += GridView1.Controls(0).Controls(0).GetType().Name +
> > "<br />"
> > End Sub
> >
> > Sub RecurseControls(ByVal ctls As ControlCollection)
> > For Each ctl As Control In ctls
> > If Not ctl.HasControls() Then
> > Label1.Text += ctl.ClientID + " " + ctl.GetType().Name +
> > "<br />"
> > Else
> > RecurseControls(ctl.Controls)
> > End If
> > Next
> > End Sub
> >
> > Protected Sub GridView1_RowCommand1(ByVal sender As Object, ByVal e As
> > System.Web.UI.WebControls.GridViewCommandEventArgs ) Handles
> > GridView1.RowCommand
> > If e.CommandName = "EmptyInsert" Then
> > Dim tbEmptyInsert As TextBox =
> > GridView1.Controls(0).Controls(0).FindControl("tbE mptyInsert")
> > Label1.Text = String.Format("You would have inserted the name:
> > <b>{0}</b> from the emptydatatemplate", tbEmptyInsert.Text)
> > End If
> > If e.CommandName = "Insert" Then
> > Dim tbInsert As TextBox =
> > GridView1.FooterRow.FindControl("tbInsert")
> > Label1.Text = String.Format("You would have inserted the name:
> > <b>{0}</b> from the footerrow", tbInsert.Text)
> > End If
> > End Sub
> > End Class
> >
> > I hope this helps. Please feel free to post here if anything is unclear.
> >
> > Regards,
> > Walter Wang ((E-Mail Removed), remove 'online.')
> > Microsoft Online Community Support
> >
> > ==================================================
> > When responding to posts, please "Reply to Group" via your newsreader so
> > that others may learn and benefit from your issue.
> > ==================================================
> >
> > This posting is provided "AS IS" with no warranties, and confers no rights.
> >
> >

 
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
You cannot add or change a record because a related record is required in table 'lok" André ASP .Net 0 06-25-2006 01:30 PM
You cannot add or change a record because a related record is required in table 'lok" André ASP .Net Web Controls 0 06-25-2006 01:30 PM
How to insert a new record in detailsview when there are no record Frits van Soldt ASP .Net Web Controls 2 11-17-2005 09:18 AM
How to add a button to Modify, delete or add a new record to this code karenmiddleol@yahoo.com ASP General 2 10-04-2005 11:55 AM
How to add a button to Modify, delete or add a new record to this code karenmiddleol@yahoo.com ASP General 0 10-01-2005 07:21 AM



Advertisments