I do have one non-standard button, that is supposed to do something with
some of the inputs before passing them on to the application. What I want is
to take detect the button press, do some processing, and then pass the
processed values along, just as if the "update" command has been issued. The
problem I have is that if I issue the "update" command, by pressing the
standard "Update" linkbutton, all the values from the form get bound to the
appropriate data in the database. If I press the other button, none of the
values are bound. What do I have to do to bind those values?
The code I have is something like this:
protected void FormView1_ItemCommand(object sender,
FormViewCommandEventArgs e)
{
if (e.CommandName == "SpecialUpdate") //The custom button.
{
//do some stuff
// FormView1.DataBind(); I tried this but it didn't work.
sqlDataSource1.Update();
}
}
protected void sqlDataSource1_Updating(object sender,
SqlDataSourceCommandEventArgs e)
{
//If I examine the parameters at this point, if I hit the standard
"Update" linkbutton, all the parameters are bound to their values. If I got
here pressing the "SpecialUpdate" button, all of the parameters are null.
//If I proceed at this point, the data values in the database will all
be set for "null", instead of taking their values from the input form.
}
When an individual item is set to edit mode, the values that can be changed
are usually displayed in text boxes or other controls in which users can
make their changes. I assume that you would like to add a custom command to
a LinkButton which in the FormView's edit mode and then to update the
DataSource in the custom command event. Please tell me If I have
misunderstood you.
The ItemCommand event is not like the Update event (or UpdateCommand event
in DataList control) which can assign the parameter value automatically.
Although the SqlDataSource has its established UpdateCommand statement and
UpdateParameters, we still need to extract the values from the controls in
the current item and pass them to the data source control for an update
operation.
Here is a sample code:
Page side code:
<EditItemTemplate>
ID:
<asp:Label ID="IDLabel1" runat="server" Text='<%#
Eval("ID") %>' />
<br />
Field1:
<asp:TextBox ID="Field1TextBox" runat="server" Text='<%#
Bind("Field1") %>' />
<br />
Field2:
<asp:TextBox ID="Field2TextBox" runat="server" Text='<%#
Bind("Field2") %>' />
<br />
<asp:LinkButton ID="UpdateButton" runat="server"
CausesValidation="True" CommandName="Update"
Text="Update" />
<asp:LinkButton ID="LinkButton1" runat="server"
CausesValidation="True" CommandName="SpecialUpdate"
Text="SpecialUpdate" />
<asp:LinkButton ID="UpdateCancelButton" runat="server"
CausesValidation="False"
CommandName="Cancel" Text="Cancel" />
</EditItemTemplate>
Code-Behind:
protected void FormView1_ItemCommand(object sender,
FormViewCommandEventArgs e)
{
if (e.CommandName == "SpecialUpdate") //The custom button.
{
String id =
((Label)FormView1.FindControl("IDLabel1")).Text;
String field1 =
((TextBox)FormView1.FindControl("Field1TextBox")).Text;
String field2 =
((TextBox)FormView1.FindControl("Field2TextBox")).Text;
SqlDataSource1.UpdateParameters["ID"].DefaultValue
= id;
SqlDataSource1.UpdateParameters["Field1"].DefaultValue
= field1;
SqlDataSource1.UpdateParameters["Field2"].DefaultValue
= field2;
SqlDataSource1.Update();
FormView1.DataBind();
FormView1.ChangeMode(FormViewMode.ReadOnly);
}
}
Some related tutorial:
http://msdn.microsoft.com/en-us/library/90xwe9s3.aspx
http://www.asp.net/learn/data-access/tutorial-28-cs.aspx
http://www.asp.net/learn/data-access/tutorial-46-cs.aspx
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.sqldatasou
rce.update.aspx
Have my reply helped?
--
Sincerely,
Zhi-Qiang Ni
Microsoft Online Support
==================================================
Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/en-us/subscriptions/aa948868.aspx#notifications.
MSDN Managed Newsgroup support offering is for non-urgent issues where an
initial response from the community or a Microsoft Support Engineer within
2 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. 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/en-us/subscriptions/aa948874.aspx
==================================================
--------------------
| Thread-Topic: What's so special about "Update"
| thread-index: Acpp8SkJAixuIYYQQY2bjnF3TBx5sQ==
| X-WBNR-Posting-Host: 12.159.35.67
| From: David <DavidLB...@newsgroup.nospam>
| Subject: What's so special about "Update"
| Date: Fri, 20 Nov 2009 06:53:03 -0800
| Lines: 46
| Message-ID: <37C917B1-ECC6-4263...@microsoft.com>
| MIME-Version: 1.0
| Content-Type: text/plain;
| charset="Utf-8"
| Content-Transfer-Encoding: 7bit
| X-Newsreader: Microsoft CDO for Windows 2000
| Content-Class: urn:content-classes:message
| Importance: normal
| Priority: normal
| X-MimeOLE: Produced By Microsoft MimeOLE V6.00.3790.4325
| Newsgroups: microsoft.public.dotnet.framework.aspnet
| Path: TK2MSFTNGHUB02.phx.gbl
| Xref: TK2MSFTNGHUB02.phx.gbl
microsoft.public.dotnet.framework.aspnet:94432
| NNTP-Posting-Host: tk2msftibfm01.phx.gbl 10.40.244.149
| X-Tomcat-NG: microsoft.public.dotnet.framework.aspnet
"Zhi-Qiang Ni[MSFT]" wrote:
> .
>
I think there is no such method to bind the parameter with the controls one
time. If the command is the UpdateCommand, the DataControl would bind the
parameter automatically and then call the SqlDataSource's Update() method.
But the Custom Command still needs to assign the parameter.
As a workaround, you can set the CustomButton's CommandName as "Update" and
assign a different CommandArgument value. Thus, you can execute some
operations based on the CommandArgument value in the ItemCommand event.
--
Sincerely,
Zhi-Qiang Ni
Microsoft Online Support
==================================================
Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/en-us/subscriptions/aa948868.aspx#notifications.
MSDN Managed Newsgroup support offering is for non-urgent issues where an
initial response from the community or a Microsoft Support Engineer within
2 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. 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/en-us/subscriptions/aa948874.aspx
==================================================
--------------------
| Thread-Topic: What's so special about "Update"
| thread-index: Acpt8mkChdHsV7w5QBWKVz0GUzDRdg==
| X-WBNR-Posting-Host: 12.159.35.67
| From: David <DavidLB...@newsgroup.nospam>
| References: <37C917B1-ECC6-4263...@microsoft.com>
<BRzQp2Qb...@TK2MSFTNGHUB02.phx.gbl>
| Subject: RE: What's so special about "Update"
| Date: Wed, 25 Nov 2009 09:12:04 -0800
| Lines: 189
| Message-ID: <872DBFF9-D15C-46F9...@microsoft.com>
| MIME-Version: 1.0
| Content-Type: text/plain;
| charset="Utf-8"
| Content-Transfer-Encoding: 7bit
| X-Newsreader: Microsoft CDO for Windows 2000
| Content-Class: urn:content-classes:message
| Importance: normal
| Priority: normal
| X-MimeOLE: Produced By Microsoft MimeOLE V6.00.3790.4325
| Newsgroups: microsoft.public.dotnet.framework.aspnet
| Path: TK2MSFTNGHUB02.phx.gbl
| Xref: TK2MSFTNGHUB02.phx.gbl
microsoft.public.dotnet.framework.aspnet:94563
| NNTP-Posting-Host: tk2msftsbfm01.phx.gbl 10.40.244.148
| X-Tomcat-NG: microsoft.public.dotnet.framework.aspnet
This is Zhi-Qiang Ni from MSDN Managed Newsgroup support team, since I
haven't seen your reply after I last posted my reply, I'm writing to check
the status of this post. Please feel free to let me know if there's
anything else I can help.
Thanks.
I think there is no such method to bind the parameter with the controls one
time. If the command is the UpdateCommand, the DataControl would bind the
parameter automatically and then call the SqlDataSource's Update() method.
But the Custom Command still needs to assign the parameter.
As a workaround, you can set the CustomButton's CommandName as "Update" and
assign a different CommandArgument value. Thus, you can execute some
operations based on the CommandArgument value in the ItemCommand event.
--
Sincerely,
Zhi-Qiang Ni
Microsoft Online Support
==================================================
Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/en-us/subscriptions/aa948868.aspx#notifications.
MSDN Managed Newsgroup support offering is for non-urgent issues where an
initial response from the community or a Microsoft Support Engineer within
2 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. 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/en-us/subscriptions/aa948874.aspx
==================================================
--------------------
| Thread-Topic: What's so special about "Update"
| thread-index: Acpt8mkChdHsV7w5QBWKVz0GUzDRdg==
| X-WBNR-Posting-Host: 12.159.35.67
| From: David <DavidLB...@newsgroup.nospam>
| References: <37C917B1-ECC6-4263...@microsoft.com>
<BRzQp2Qb...@TK2MSFTNGHUB02.phx.gbl>
| Subject: RE: What's so special about "Update"
| Date: Wed, 25 Nov 2009 09:12:04 -0800
| Lines: 189
| Message-ID: <872DBFF9-D15C-46F9...@microsoft.com>
| MIME-Version: 1.0
| Content-Type: text/plain;
| charset="Utf-8"
| Content-Transfer-Encoding: 7bit
| X-Newsreader: Microsoft CDO for Windows 2000
| Content-Class: urn:content-classes:message
| Importance: normal
| Priority: normal
| X-MimeOLE: Produced By Microsoft MimeOLE V6.00.3790.4325
| Newsgroups: microsoft.public.dotnet.framework.aspnet
| Path: TK2MSFTNGHUB02.phx.gbl
| Xref: TK2MSFTNGHUB02.phx.gbl
microsoft.public.dotnet.framework.aspnet:94563
| NNTP-Posting-Host: tk2msftsbfm01.phx.gbl 10.40.244.148
| X-Tomcat-NG: microsoft.public.dotnet.framework.aspnet
|