<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://forums.asp.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Data Presentation Controls</title><link>http://forums.asp.net/24.aspx</link><description>ASP.NET data-bound controls such as the DataGrid, DataList, GridView, FormView, DetailsView, and Repeater Controls.  &lt;a href="http://aspadvice.com/SignUp/list.aspx?l=23&amp;c=17" target="_blank"&gt;Email List&lt;/a&gt;</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>Re: GridView Update Issues</title><link>http://forums.asp.net/thread/2581901.aspx</link><pubDate>Tue, 26 Aug 2008 22:22:03 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:2581901</guid><dc:creator>tlsterling</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/2581901.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=24&amp;PostID=2581901</wfw:commentRss><description>&lt;p&gt;sbudlong,&lt;/p&gt;&lt;p&gt;I&amp;#39;m not quite following your question.&amp;nbsp; If you&amp;#39;re using stored procedures within your data-source and you&amp;#39;re experiencing an exception that says, &amp;quot;Procedure or function [name here] has too many arguments specified&amp;quot; - try including all your GridView&amp;#39;s BoundField&amp;#39;s (use the DataField attribute value) as parameters within your stored procedure.&lt;/p&gt;&lt;p&gt;Hope that helps.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Re: GridView Update Issues</title><link>http://forums.asp.net/thread/2581881.aspx</link><pubDate>Tue, 26 Aug 2008 21:59:25 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:2581881</guid><dc:creator>sbudlong</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/2581881.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=24&amp;PostID=2581881</wfw:commentRss><description>&lt;p&gt;Tracy, I wish I had come across your post a couple of days ago. Life would have been much easier. But what does this mean? &amp;quot;You can go ahead and include their column names as input parameters within your stored procedure (@CURRENT_STATUS_DESCRIPTION) and just do nothing with them.&amp;quot; Does this mean that I should use the database table column names in the stored procedure parameters, in the UPDATE parameters on the page, and as the form parameters on the page? I&amp;#39;ll try that and see what happens. Thank you very much for confirming what I already sensed was true.&lt;/p&gt;</description></item><item><title>Re: GridView Update Issues</title><link>http://forums.asp.net/thread/2037206.aspx</link><pubDate>Mon, 03 Dec 2007 04:43:36 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:2037206</guid><dc:creator>DotNetButterfly</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/2037206.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=24&amp;PostID=2037206</wfw:commentRss><description>&lt;p&gt;Thanks so much Tracy...you saved my day..the ReadOnly attribute is such a hidden mess!&lt;/p&gt;</description></item><item><title>Re: GridView Update Issues</title><link>http://forums.asp.net/thread/1850587.aspx</link><pubDate>Thu, 09 Aug 2007 19:07:57 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1850587</guid><dc:creator>tlsterling</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1850587.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=24&amp;PostID=1850587</wfw:commentRss><description>&lt;p&gt;Thanks for your helpful reply.&amp;nbsp; I, too, initially thought perhaps the problem lie within the table joins I was performing in&amp;nbsp;the select query that was populating my GridView.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;However, after frolicking further in the land of SqlDataSources and GridViews, I soon realized it was&amp;nbsp;primarily the indiosynchratic differences between&amp;nbsp;defining one&amp;#39;s GridView select/update functions&amp;nbsp;by referencing&amp;nbsp;stored procedures&amp;nbsp;versus embedding&amp;nbsp;SQL statements directly within Visual Studio&amp;#39;s SqlDataSource&amp;nbsp;configuration wizard.&amp;nbsp; I&amp;#39;ll describe the &amp;#39;GOTCHAS&amp;#39; I encountered below in the hopes of alleviating a fellow developer&amp;#39;s trauma while exploring the wide world of editable GridView&amp;#39;s.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Behavior #1:&amp;nbsp; No errors being generated and no exceptions being thrown, but the GridView&amp;#39;s update function just doesn&amp;#39;t do anything.&amp;nbsp; I encountered this problem when the condition within my Update stored procedure was not being met [WHERE MAIN_ID = @MAIN_ID].&amp;nbsp; Unfortunately the reason(s) the condition was failing weren&amp;#39;t obvious.&lt;/strong&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;strong&gt;Reason #1:&lt;/strong&gt;&amp;nbsp; As stupid as I feel admitting this, I&amp;#39;m going to do it for the sake of others who could be making a similar error.&amp;nbsp; I wasn&amp;#39;t including&amp;nbsp;the MAIN_ID field within my&amp;nbsp;GridView&amp;#39;s select query.&amp;nbsp;&amp;nbsp;VS&amp;nbsp;did not generate any type of error in spite of&amp;nbsp;the fact that I was declaring a parameter named @MAIN_ID&amp;nbsp;within my Update&amp;nbsp;function that&amp;nbsp;was not included as part of my&amp;nbsp;GridView&amp;#39;s select query, but maybe that&amp;#39;s so they can allow for&amp;nbsp;extraneous&amp;nbsp;GridView column additions.&amp;nbsp; At any rate, my &amp;#39;where&amp;#39; condition failed in this case (obviously!)&amp;nbsp;since it likely had a value of&amp;nbsp;&amp;#39;NULL&amp;#39; for the @MAIN_ID input parameter value.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;strong&gt;Reason #2:&lt;/strong&gt;&amp;nbsp; If you&amp;#39;re&amp;nbsp;referencing a stored procedure&amp;nbsp;for your GridView&amp;#39;s select query, you&amp;#39;re likely missing the necessary DataKeyNames attribute value within your GridView element.&amp;nbsp; At a minimum, this&amp;nbsp;attribute needs to hold the name of the field(s) you&amp;#39;re using within the where clause of your update&amp;nbsp;statement (in my case, I need DataKeyNames=&amp;quot;MAIN_ID&amp;quot;).&amp;nbsp; From what I can tell, VS will auto-populate this attribute if you&amp;#39;re embedding the SQL directly within its SqlDataSource wizard&amp;nbsp;with the names of any primary key&amp;nbsp;columns it encounters, but no such auto-population will occur, nor will any errors/exceptions be generated when you&amp;#39;re referencing your own stored procedure.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Behavior #2:&amp;nbsp; A &amp;#39;Procedure or function [your&amp;nbsp;procedure&amp;#39;s name here] has too many arguments specified.&amp;#39; exception gets thrown when you attempt to update a record within the Gridview.&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;Another dissimilar behavior characteristic between using embedding SQL versus a referenced stored procedure is VS&amp;#39;s ability to&amp;nbsp;automatically determine the fields that&amp;nbsp;should be included as parameters within the GridView&amp;#39;s&amp;nbsp;update statement.&amp;nbsp; When using embedded SQL,&amp;nbsp;the update&amp;nbsp;parameters will be automatically&amp;nbsp;limited to those &amp;lt;asp:parameter&amp;gt; elements included within&amp;nbsp;your SqlDataSource&amp;#39;s &amp;lt;UpdateParameters&amp;gt; element regardless of the number of&amp;nbsp;BoundFields you have listed within your GridView.&amp;nbsp; However, when&amp;nbsp;referencing a stored procedure every BoundField that&amp;nbsp;does not&amp;nbsp;contain a ReadOnly attribute value of &amp;#39;True&amp;#39; (and&amp;nbsp;BTW it&amp;#39;s default value is&amp;nbsp;&amp;#39;False&amp;#39;) will be included as a parameter and sent to your stored procedure&amp;nbsp;REGARDLESS of&amp;nbsp;what&amp;nbsp;you have listed as &amp;lt;UpdateParameters&amp;gt;.&amp;nbsp; This seems highly un-intuitive to me, too, but it&amp;#39;s an easy fix once you know&amp;nbsp;that&amp;#39;s what&amp;#39;s going on.&amp;nbsp; You can either change each of the&amp;nbsp;BoundFields that you don&amp;#39;t want included&amp;nbsp;as update parameters to have a ReadOnly attribute value of &amp;#39;true&amp;#39; or you can go ahead an include their column names as input parameters within your stored procedure (@CURRENT_STATUS_DESCRIPTION) and just do nothing with them.&amp;nbsp; &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&amp;nbsp;As a sidenote, here are a couple of incorrect/outdated solutions I encountered on other forums&amp;nbsp;and wasted time pursuing:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;strong&gt;Solution #1:&lt;/strong&gt;&amp;nbsp; The &amp;lt;NULL&amp;gt; = &amp;lt;NULL&amp;gt; comparison issue.&amp;nbsp; One forum claimed that if you were including nullable columns within your GridView and attempted to update a column with a current value of NULL, the&amp;nbsp;GridView&amp;#39;s update procedure would attempt a &amp;lt;NULL&amp;gt; = &amp;lt;NULL&amp;gt;&amp;nbsp;comparison, which would&amp;nbsp;return false and halt the execution.&amp;nbsp; I found no such behavior in my&amp;nbsp;.NET 2.0&amp;nbsp;Framework and SQL Server 2000 configuration.&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;strong&gt;Solution #2:&lt;/strong&gt;&amp;nbsp; Anything to do with the value contained within SqlDataSource&amp;#39;s ConflictDetection attribute.&amp;nbsp; After wasting time on this one, I wound up using the default value (easily achievable by just&amp;nbsp;omitting the attribute altogether)&amp;nbsp;and everything&amp;#39;s working just fine.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;strong&gt;Solution #3:&lt;/strong&gt;&amp;nbsp; Anything to do with the value contained within SqlDataSource&amp;#39;s OldValuesParameterFormatString attribute.&amp;nbsp; [See solution #2].&amp;nbsp; &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;I hope&amp;nbsp;the vivid and lengthy description of my GridView trial and turbulations&amp;nbsp;aid other developers who often find themselves unable (or unwilling)&amp;nbsp;to read the ADO.NET 2.0 book from cover to cover and&amp;nbsp;opt for a slightly more painful and ad-hoc methodology.&lt;/p&gt;</description></item><item><title>Re: GridView Update Issues</title><link>http://forums.asp.net/thread/1849336.aspx</link><pubDate>Thu, 09 Aug 2007 10:02:28 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1849336</guid><dc:creator>griff_1000</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1849336.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=24&amp;PostID=1849336</wfw:commentRss><description>&lt;p&gt;&amp;nbsp;I&amp;#39;d put your update in a stored procedure too, then you can put it in a try...catch block if you&amp;#39;re using SQL Server 2005 and see if there are any errors - there are alternative techniques for other versions of SqlServer.&amp;nbsp; Sounds like it could be foreign key issue.&amp;nbsp; &lt;/p&gt;&lt;p&gt;By the way, your select stored procedure would be more efficient and simpler to read if you used joins instead of subselects, for example:&lt;/p&gt;&lt;pre class="coloredcode"&gt;&lt;span class="sqlkwd"&gt;&lt;b id="5"&gt;    &lt;/b&gt;select 	distinct&lt;/span&gt; m.MAIN_ID, m.CUSTOMER_NAME, m.B_AND_P, m.RPF_RFQ, m.DIVISION, &lt;br /&gt;&lt;b id="6"&gt;    &lt;/b&gt;	m.TITLE, m.END_USER, m.CONTRACT_TYPE_ID, &lt;br /&gt;&lt;b id="7"&gt;    &lt;/b&gt;	m.PROGRAM_MANAGER, m.CONTRACT_REP, m.PRICER, m.SUBCONTRACT_REP,&lt;br /&gt;&lt;b id="8"&gt;    &lt;/b&gt;	m.PROJECT_CONTROLLER, m.TASK_VALUE, m.RFQ_EXPECTED_DATE, m.RFQ_DUE_DATE, &lt;br /&gt;&lt;b id="9"&gt;    &lt;/b&gt;	m.TARGET_DATE, m.DATE_DUE_TO_CUSTOMER, m.SUBMITTED_DATE, m.CURRENT_STATUS_ID, &lt;br /&gt;&lt;b id="10"&gt;   &lt;/b&gt;	m.FINAL_STATUS_ID, m.FINAL_STATUS_DATE,&lt;br /&gt;&lt;b id="11"&gt;   &lt;/b&gt;	ct.CONTRACT_TYPE_DESCRIPTION,&lt;br /&gt;&lt;b id="14"&gt;   &lt;/b&gt;	fs.FINAL_STATUS_DESCRIPTION,&lt;br /&gt;&lt;b id="17"&gt;   &lt;/b&gt;	cs.CURRENT_STATUS_DESCRIPTION&lt;br /&gt;&lt;b id="21"&gt;   &lt;/b&gt;&lt;span class="sqlkwd"&gt;from&lt;/span&gt; 	MAIN m&lt;br /&gt;       inner join CONTRACT_TYPE ct on ct.CONTRACT_TYPE_ID = m.CONTRACT_TYPE_ID&lt;br /&gt;       inner join FINAL_STATUS fs on fs.FINAL_STATUS_ID = m.FINAL_STATUS_ID&lt;br /&gt;       inner join CURRENT_STATUS cs on cs.CURRENT_STATUS_ID = m.CURRENT_STATUS_ID&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;&amp;nbsp;You may need to use left outer joins instead of inner joins if there will be null values in any of the joined tables.&lt;br /&gt;&lt;/p&gt;</description></item><item><title>GridView Update Issues</title><link>http://forums.asp.net/thread/1848703.aspx</link><pubDate>Thu, 09 Aug 2007 02:30:44 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1848703</guid><dc:creator>tlsterling</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1848703.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=24&amp;PostID=1848703</wfw:commentRss><description>&lt;p&gt;&lt;strong&gt;Here goes;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;I&amp;#39;m trying to perform a fairly simple task (or so it would seem...).&amp;nbsp; I have a SQLDataSource on my aspx page and choose it as the datasource&amp;nbsp;for my GridView.&amp;nbsp; Here is&amp;nbsp;my stored procedure&amp;nbsp;that populates my datasource:&lt;/strong&gt;&lt;/p&gt;&lt;pre class="coloredcode"&gt;&lt;b id="1"&gt;1    &lt;/b&gt;&lt;span class="sqlkwd"&gt;CREATE  PROCEDURE&lt;/span&gt; dbo.proc_get_all_records_matching_criteria
&lt;b id="2"&gt;2    &lt;/b&gt;
&lt;b id="3"&gt;3    &lt;/b&gt;&lt;span class="sqlkwd"&gt;AS
&lt;b id="4"&gt;4    &lt;/b&gt;
&lt;b id="5"&gt;5    &lt;/b&gt;select 	distinct&lt;/span&gt; m.MAIN_ID, m.CUSTOMER_NAME, m.B_AND_P, m.RPF_RFQ, m.DIVISION, 
&lt;b id="6"&gt;6    &lt;/b&gt;	m.TITLE, m.END_USER, m.CONTRACT_TYPE_ID, 
&lt;b id="7"&gt;7    &lt;/b&gt;	m.PROGRAM_MANAGER, m.CONTRACT_REP, m.PRICER, m.SUBCONTRACT_REP,
&lt;b id="8"&gt;8    &lt;/b&gt;	m.PROJECT_CONTROLLER, m.TASK_VALUE, m.RFQ_EXPECTED_DATE, m.RFQ_DUE_DATE, 
&lt;b id="9"&gt;9    &lt;/b&gt;	m.TARGET_DATE, m.DATE_DUE_TO_CUSTOMER, m.SUBMITTED_DATE, m.CURRENT_STATUS_ID, 
&lt;b id="10"&gt;10   &lt;/b&gt;	m.FINAL_STATUS_ID, m.FINAL_STATUS_DATE,
&lt;b id="11"&gt;11   &lt;/b&gt;	(&lt;span class="sqlkwd"&gt;select&lt;/span&gt; ct.CONTRACT_TYPE_DESCRIPTION
&lt;b id="12"&gt;12   &lt;/b&gt;	 &lt;span class="sqlkwd"&gt;from&lt;/span&gt; 	CONTRACT_TYPE ct
&lt;b id="13"&gt;13   &lt;/b&gt;	 &lt;span class="sqlkwd"&gt;where&lt;/span&gt; 	ct.CONTRACT_TYPE_ID = m.CONTRACT_TYPE_ID) CONTRACT_TYPE_DESCRIPTION,
&lt;b id="14"&gt;14   &lt;/b&gt;	(&lt;span class="sqlkwd"&gt;select&lt;/span&gt; fs.FINAL_STATUS_DESCRIPTION
&lt;b id="15"&gt;15   &lt;/b&gt;	 &lt;span class="sqlkwd"&gt;from&lt;/span&gt; 	FINAL_STATUS fs
&lt;b id="16"&gt;16   &lt;/b&gt;	 &lt;span class="sqlkwd"&gt;where&lt;/span&gt; 	fs.FINAL_STATUS_ID = m.FINAL_STATUS_ID) FINAL_STATUS_DESCRIPTION,
&lt;b id="17"&gt;17   &lt;/b&gt;	(&lt;span class="sqlkwd"&gt;select&lt;/span&gt; cs.CURRENT_STATUS_DESCRIPTION
&lt;b id="18"&gt;18   &lt;/b&gt;	 &lt;span class="sqlkwd"&gt;from&lt;/span&gt; 	CURRENT_STATUS cs
&lt;b id="19"&gt;19   &lt;/b&gt;	 &lt;span class="sqlkwd"&gt;where&lt;/span&gt; 	cs.CURRENT_STATUS_ID = m.CURRENT_STATUS_ID) CURRENT_STATUS_DESCRIPTION
&lt;b id="20"&gt;20   &lt;/b&gt;
&lt;b id="21"&gt;21   &lt;/b&gt;&lt;span class="sqlkwd"&gt;from&lt;/span&gt; 	MAIN m
&lt;b id="22"&gt;22   &lt;/b&gt;GO&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;As you can see, some of the fields I&amp;#39;m&amp;nbsp;retrieving are from other foreign-key related tables via subqueries.&amp;nbsp; Now, as expected, when this GridView gets displayed and I check the &amp;#39;Enable Editing&amp;#39; box, those fields are not editable since their ReadOnly property is automatically&amp;nbsp;set to false; so far so good.&amp;nbsp;&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Here is my Update SQL&amp;nbsp;statement for the same datasource:&lt;/strong&gt;&lt;/p&gt;&lt;pre class="coloredcode"&gt;&lt;b id="1"&gt;1    &lt;/b&gt;&lt;span class="sqlkwd"&gt;UPDATE&lt;/span&gt; MAIN &lt;span class="sqlkwd"&gt;SET&lt;/span&gt; CUSTOMER_NAME = @CUSTOMER_NAME, 
&lt;b id="2"&gt;2    &lt;/b&gt;B_AND_P = @B_AND_P, 
&lt;b id="3"&gt;3    &lt;/b&gt;RPF_RFQ = @RPF_RFQ, 
&lt;b id="4"&gt;4    &lt;/b&gt;DIVISION = @DIVISION, 
&lt;b id="5"&gt;5    &lt;/b&gt;TITLE = @TITLE, 
&lt;b id="6"&gt;6    &lt;/b&gt;END_USER = @END_USER, 
&lt;b id="7"&gt;7    &lt;/b&gt;PROGRAM_MANAGER = @PROGRAM_MANAGER, 
&lt;b id="8"&gt;8    &lt;/b&gt;CONTRACT_REP = @CONTRACT_REP, 
&lt;b id="9"&gt;9    &lt;/b&gt;PRICER = @PRICER, 
&lt;b id="10"&gt;10   &lt;/b&gt;SUBCONTRACT_REP = @SUBCONTRACT_REP, 
&lt;b id="11"&gt;11   &lt;/b&gt;PROJECT_CONTROLLER = @PROJECT_CONTROLLER, 
&lt;b id="12"&gt;12   &lt;/b&gt;TASK_VALUE = &lt;span class="sqlkwd2"&gt;convert&lt;/span&gt;(&lt;span class="sqlkwd"&gt;money&lt;/span&gt;, @TASK_VALUE), 
&lt;b id="13"&gt;13   &lt;/b&gt;RFQ_EXPECTED_DATE = @RFQ_EXPECTED_DATE, 
&lt;b id="14"&gt;14   &lt;/b&gt;RFQ_DUE_DATE = @RFQ_DUE_DATE, 
&lt;b id="15"&gt;15   &lt;/b&gt;TARGET_DATE = @TARGET_DATE, 
&lt;b id="16"&gt;16   &lt;/b&gt;DATE_DUE_TO_CUSTOMER = @DATE_DUE_TO_CUSTOMER, 
&lt;b id="17"&gt;17   &lt;/b&gt;SUBMITTED_DATE = @SUBMITTED_DATE, 
&lt;b id="18"&gt;18   &lt;/b&gt;FINAL_STATUS_DATE = @FINAL_STATUS_DATE 
&lt;b id="19"&gt;19   &lt;/b&gt;&lt;span class="sqlkwd"&gt;WHERE&lt;/span&gt; MAIN_ID = @MAIN_ID&lt;/pre&gt;&lt;pre class="coloredcode"&gt;&amp;nbsp;&lt;strong&gt;And here is all my .aspx code (for good measure):&lt;/strong&gt;&lt;/pre&gt;&lt;pre class="coloredcode"&gt;&lt;pre class="coloredcode"&gt;&lt;b id="1"&gt;1    &lt;/b&gt;&lt;span class="dir"&gt;&amp;lt;%@ Page Language=&amp;quot;C#&amp;quot; MasterPageFile=&amp;quot;~/MasterPage.master&amp;quot; AutoEventWireup=&amp;quot;true&amp;quot; CodeFile=&amp;quot;ProposalLogResults.aspx.cs&amp;quot; &lt;/span&gt;&lt;/pre&gt;&lt;pre class="coloredcode"&gt;&lt;span class="dir"&gt;	Inherits=&amp;quot;ProposalLogResults&amp;quot; Title=&amp;quot;Contracts Proposal Log Results&amp;quot; %&amp;gt;&lt;/span&gt;
&lt;b id="2"&gt;2    &lt;/b&gt;&amp;lt;&lt;span class="tag"&gt;asp:Content&lt;/span&gt;&lt;span class="attr"&gt; ID=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;Content1&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; ContentPlaceHolderID=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;ContentPlaceHolder1&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; Runat=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;Server&amp;quot;&lt;/span&gt;&amp;gt;
&lt;b id="3"&gt;3    &lt;/b&gt;    &amp;lt;&lt;span class="tag"&gt;asp:GridView&lt;/span&gt;&lt;span class="attr"&gt; ID=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;GridView1&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; runat=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; AutoGenerateColumns=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;False&amp;quot;&lt;/span&gt; 
&lt;b id="4"&gt;4    &lt;/b&gt;&lt;span class="attr"&gt;    DataSourceID=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;SqlDataSource1&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; AllowPaging=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;True&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; AllowSorting=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;True&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; AutoGenerateEditButton=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;True&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; CellPadding=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;4&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; ForeColor=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;#333333&amp;quot;&lt;/span&gt;
&lt;b id="5"&gt;5    &lt;/b&gt;&lt;span class="attr"&gt;     GridLines=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;None&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; OnRowUpdated=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;RowUpdated&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; OnRowUpdating=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;RowUpdating&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; DataKeyNames=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;MAIN_ID&amp;quot;&lt;/span&gt;&amp;gt;
&lt;b id="6"&gt;6    &lt;/b&gt;        &amp;lt;&lt;span class="tag"&gt;Columns&lt;/span&gt;&amp;gt;
&lt;b id="7"&gt;7    &lt;/b&gt;            &amp;lt;&lt;span class="tag"&gt;asp:BoundField&lt;/span&gt;&lt;span class="attr"&gt; DataField=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;MAIN_ID&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; HeaderText=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;ID&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; InsertVisible=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;False&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; ReadOnly=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;True&amp;quot;&lt;/span&gt;
&lt;b id="8"&gt;8    &lt;/b&gt;&lt;span class="attr"&gt;                SortExpression=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;MAIN_ID&amp;quot;&lt;/span&gt; /&amp;gt;
&lt;b id="9"&gt;9    &lt;/b&gt;            &amp;lt;&lt;span class="tag"&gt;asp:BoundField&lt;/span&gt;&lt;span class="attr"&gt; DataField=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;CUSTOMER_NAME&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; HeaderText=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;CUSTOMER NAME&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; SortExpression=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;CUSTOMER_NAME&amp;quot;&lt;/span&gt; /&amp;gt;
&lt;b id="10"&gt;10   &lt;/b&gt;            &amp;lt;&lt;span class="tag"&gt;asp:BoundField&lt;/span&gt;&lt;span class="attr"&gt; DataField=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;B_AND_P&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; HeaderText=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;B&amp;amp;P #&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; SortExpression=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;B_AND_P&amp;quot;&lt;/span&gt; /&amp;gt;
&lt;b id="11"&gt;11   &lt;/b&gt;            &amp;lt;&lt;span class="tag"&gt;asp:BoundField&lt;/span&gt;&lt;span class="attr"&gt; DataField=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;RPF_RFQ&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; HeaderText=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;RPF/RFQ&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; SortExpression=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;RPF_RFQ&amp;quot;&lt;/span&gt; /&amp;gt;
&lt;b id="12"&gt;12   &lt;/b&gt;            &amp;lt;&lt;span class="tag"&gt;asp:BoundField&lt;/span&gt;&lt;span class="attr"&gt; DataField=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;DIVISION&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; HeaderText=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;DIVISION&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; SortExpression=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;DIVISION&amp;quot;&lt;/span&gt; /&amp;gt;
&lt;b id="13"&gt;13   &lt;/b&gt;            &amp;lt;&lt;span class="tag"&gt;asp:BoundField&lt;/span&gt;&lt;span class="attr"&gt; DataField=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;TITLE&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; HeaderText=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;TITLE&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; SortExpression=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;TITLE&amp;quot;&lt;/span&gt; /&amp;gt;
&lt;b id="14"&gt;14   &lt;/b&gt;            &amp;lt;&lt;span class="tag"&gt;asp:BoundField&lt;/span&gt;&lt;span class="attr"&gt; DataField=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;END_USER&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; HeaderText=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;END USER&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; SortExpression=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;END_USER&amp;quot;&lt;/span&gt; /&amp;gt;
&lt;b id="15"&gt;15   &lt;/b&gt;            &amp;lt;&lt;span class="tag"&gt;asp:BoundField&lt;/span&gt;&lt;span class="attr"&gt; DataField=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;PROGRAM_MANAGER&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; HeaderText=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;PROGRAM MANAGER&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; SortExpression=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;PROGRAM_MANAGER&amp;quot;&lt;/span&gt; /&amp;gt;
&lt;b id="16"&gt;16   &lt;/b&gt;            &amp;lt;&lt;span class="tag"&gt;asp:BoundField&lt;/span&gt;&lt;span class="attr"&gt; DataField=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;CONTRACT_REP&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; HeaderText=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;CONTRACT REP&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; SortExpression=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;CONTRACT_REP&amp;quot;&lt;/span&gt; /&amp;gt;
&lt;b id="17"&gt;17   &lt;/b&gt;            &amp;lt;&lt;span class="tag"&gt;asp:BoundField&lt;/span&gt;&lt;span class="attr"&gt; DataField=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;PRICER&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; HeaderText=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;PRICER&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; SortExpression=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;PRICER&amp;quot;&lt;/span&gt; /&amp;gt;
&lt;b id="18"&gt;18   &lt;/b&gt;            &amp;lt;&lt;span class="tag"&gt;asp:BoundField&lt;/span&gt;&lt;span class="attr"&gt; DataField=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;SUBCONTRACT_REP&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; HeaderText=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;SUBK REP&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; SortExpression=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;SUBCONTRACT_REP&amp;quot;&lt;/span&gt; /&amp;gt;
&lt;b id="19"&gt;19   &lt;/b&gt;            &amp;lt;&lt;span class="tag"&gt;asp:BoundField&lt;/span&gt;&lt;span class="attr"&gt; DataField=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;PROJECT_CONTROLLER&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; HeaderText=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;PROJECT CONTROLLER&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; SortExpression=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;PROJECT_CONTROLLER&amp;quot;&lt;/span&gt; /&amp;gt;
&lt;b id="20"&gt;20   &lt;/b&gt;            &amp;lt;&lt;span class="tag"&gt;asp:BoundField&lt;/span&gt;&lt;span class="attr"&gt; DataField=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;TASK_VALUE&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; HeaderText=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;VALUE&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; SortExpression=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;TASK_VALUE&amp;quot;&lt;/span&gt; /&amp;gt;
&lt;b id="21"&gt;21   &lt;/b&gt;            &amp;lt;&lt;span class="tag"&gt;asp:BoundField&lt;/span&gt;&lt;span class="attr"&gt; DataField=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;RFQ_EXPECTED_DATE&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; HeaderText=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;RFQ EXPECTED DATE&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; SortExpression=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;RFQ_EXPECTED_DATE&amp;quot;&lt;/span&gt; /&amp;gt;
&lt;b id="22"&gt;22   &lt;/b&gt;            &amp;lt;&lt;span class="tag"&gt;asp:BoundField&lt;/span&gt;&lt;span class="attr"&gt; DataField=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;RFQ_DUE_DATE&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; HeaderText=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;RFQ DUE DATE&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; SortExpression=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;RFQ_DUE_DATE&amp;quot;&lt;/span&gt; /&amp;gt;
&lt;b id="23"&gt;23   &lt;/b&gt;            &amp;lt;&lt;span class="tag"&gt;asp:BoundField&lt;/span&gt;&lt;span class="attr"&gt; DataField=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;TARGET_DATE&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; HeaderText=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;TARGET DATE&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; SortExpression=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;TARGET_DATE&amp;quot;&lt;/span&gt; /&amp;gt;
&lt;b id="24"&gt;24   &lt;/b&gt;            &amp;lt;&lt;span class="tag"&gt;asp:BoundField&lt;/span&gt;&lt;span class="attr"&gt; DataField=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;DATE_DUE_TO_CUSTOMER&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; HeaderText=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;DATE DUE TO CUSTOMER&amp;quot;&lt;/span&gt;
&lt;b id="25"&gt;25   &lt;/b&gt;&lt;span class="attr"&gt;                SortExpression=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;DATE_DUE_TO_CUSTOMER&amp;quot;&lt;/span&gt; /&amp;gt;
&lt;b id="26"&gt;26   &lt;/b&gt;            &amp;lt;&lt;span class="tag"&gt;asp:BoundField&lt;/span&gt;&lt;span class="attr"&gt; DataField=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;SUBMITTED_DATE&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; HeaderText=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;SUBMITTED DATE&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; SortExpression=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;SUBMITTED_DATE&amp;quot;&lt;/span&gt; /&amp;gt;
&lt;b id="27"&gt;27   &lt;/b&gt;            &amp;lt;&lt;span class="tag"&gt;asp:BoundField&lt;/span&gt;&lt;span class="attr"&gt; DataField=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;FINAL_STATUS_DATE&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; HeaderText=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;FINAL STATUS DATE&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; SortExpression=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;FINAL_STATUS_DATE&amp;quot;&lt;/span&gt; /&amp;gt;
&lt;b id="28"&gt;28   &lt;/b&gt;            &amp;lt;&lt;span class="tag"&gt;asp:BoundField&lt;/span&gt;&lt;span class="attr"&gt; DataField=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;CONTRACT_TYPE_DESCRIPTION&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; HeaderText=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;CONTRACT TYPE&amp;quot;&lt;/span&gt;
&lt;b id="29"&gt;29   &lt;/b&gt;&lt;span class="attr"&gt;                ReadOnly=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;True&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; SortExpression=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;CONTRACT_TYPE_DESCRIPTION&amp;quot;&lt;/span&gt; /&amp;gt;
&lt;b id="30"&gt;30   &lt;/b&gt;            &amp;lt;&lt;span class="tag"&gt;asp:BoundField&lt;/span&gt;&lt;span class="attr"&gt; DataField=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;FINAL_STATUS_DESCRIPTION&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; HeaderText=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;FINAL STATUS&amp;quot;&lt;/span&gt;
&lt;b id="31"&gt;31   &lt;/b&gt;&lt;span class="attr"&gt;                ReadOnly=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;True&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; SortExpression=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;FINAL_STATUS_DESCRIPTION&amp;quot;&lt;/span&gt; /&amp;gt;
&lt;b id="32"&gt;32   &lt;/b&gt;            &amp;lt;&lt;span class="tag"&gt;asp:BoundField&lt;/span&gt;&lt;span class="attr"&gt; DataField=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;CURRENT_STATUS_DESCRIPTION&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; HeaderText=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;CURRENT STATUS&amp;quot;&lt;/span&gt;
&lt;b id="33"&gt;33   &lt;/b&gt;&lt;span class="attr"&gt;                ReadOnly=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;True&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; SortExpression=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;CURRENT_STATUS_DESCRIPTION&amp;quot;&lt;/span&gt; /&amp;gt;
&lt;b id="34"&gt;34   &lt;/b&gt;        &amp;lt;/&lt;span class="tag"&gt;Columns&lt;/span&gt;&amp;gt;
&lt;b id="35"&gt;35   &lt;/b&gt;        &amp;lt;&lt;span class="tag"&gt;FooterStyle&lt;/span&gt;&lt;span class="attr"&gt; BackColor=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;#507CD1&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; Font-Bold=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;True&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; ForeColor=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;White&amp;quot;&lt;/span&gt; /&amp;gt;
&lt;b id="36"&gt;36   &lt;/b&gt;        &amp;lt;&lt;span class="tag"&gt;RowStyle&lt;/span&gt;&lt;span class="attr"&gt; BackColor=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;#EFF3FB&amp;quot;&lt;/span&gt; /&amp;gt;
&lt;b id="37"&gt;37   &lt;/b&gt;        &amp;lt;&lt;span class="tag"&gt;EditRowStyle&lt;/span&gt;&lt;span class="attr"&gt; BackColor=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;#2461BF&amp;quot;&lt;/span&gt; /&amp;gt;
&lt;b id="38"&gt;38   &lt;/b&gt;        &amp;lt;&lt;span class="tag"&gt;SelectedRowStyle&lt;/span&gt;&lt;span class="attr"&gt; BackColor=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;#D1DDF1&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; Font-Bold=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;True&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; ForeColor=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;#333333&amp;quot;&lt;/span&gt; /&amp;gt;
&lt;b id="39"&gt;39   &lt;/b&gt;        &amp;lt;&lt;span class="tag"&gt;PagerStyle&lt;/span&gt;&lt;span class="attr"&gt; BackColor=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;#2461BF&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; ForeColor=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;White&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; HorizontalAlign=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;Center&amp;quot;&lt;/span&gt; /&amp;gt;
&lt;b id="40"&gt;40   &lt;/b&gt;        &amp;lt;&lt;span class="tag"&gt;HeaderStyle&lt;/span&gt;&lt;span class="attr"&gt; BackColor=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;#507CD1&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; Font-Bold=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;True&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; ForeColor=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;White&amp;quot;&lt;/span&gt; /&amp;gt;
&lt;b id="41"&gt;41   &lt;/b&gt;        &amp;lt;&lt;span class="tag"&gt;AlternatingRowStyle&lt;/span&gt;&lt;span class="attr"&gt; BackColor=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;White&amp;quot;&lt;/span&gt; /&amp;gt;
&lt;b id="42"&gt;42   &lt;/b&gt;    &amp;lt;/&lt;span class="tag"&gt;asp:GridView&lt;/span&gt;&amp;gt;
&lt;b id="43"&gt;43   &lt;/b&gt;    &amp;lt;&lt;span class="tag"&gt;asp:SqlDataSource&lt;/span&gt;&lt;span class="attr"&gt; ID=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;SqlDataSource1&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; runat=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; ConnectionString=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;&lt;span class="dir"&gt;&amp;lt;%$&lt;/span&gt; ConnectionStrings:UserConnectionString &lt;span class="dir"&gt;%&amp;gt;&lt;/span&gt;&amp;quot;&lt;/span&gt;
&lt;b id="44"&gt;44   &lt;/b&gt;&lt;span class="attr"&gt;        SelectCommand=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;proc_get_all_records_matching_criteria&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; SelectCommandType=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;StoredProcedure&amp;quot;&lt;/span&gt; 
&lt;b id="45"&gt;45   &lt;/b&gt;&lt;span class="attr"&gt;        UpdateCommand=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;UPDATE MAIN SET CUSTOMER_NAME = @CUSTOMER_NAME, &lt;/span&gt;&lt;/pre&gt;&lt;pre class="coloredcode"&gt;&lt;span class="attrv"&gt;	B_AND_P = @B_AND_P, RPF_RFQ = @RPF_RFQ, DIVISION = @DIVISION, TITLE = @TITLE, END_USER = @END_USER, &lt;/span&gt;&lt;/pre&gt;&lt;pre class="coloredcode"&gt;&lt;span class="attrv"&gt;	PROGRAM_MANAGER = @PROGRAM_MANAGER, CONTRACT_REP = @CONTRACT_REP, PRICER = @PRICER, &lt;/span&gt;&lt;/pre&gt;&lt;pre class="coloredcode"&gt;&lt;span class="attrv"&gt;	SUBCONTRACT_REP = @SUBCONTRACT_REP, PROJECT_CONTROLLER = @PROJECT_CONTROLLER, &lt;/span&gt;&lt;/pre&gt;&lt;pre class="coloredcode"&gt;&lt;span class="attrv"&gt;	TASK_VALUE = convert(money, @TASK_VALUE), RFQ_EXPECTED_DATE = @RFQ_EXPECTED_DATE, &lt;/span&gt;&lt;/pre&gt;&lt;pre class="coloredcode"&gt;&lt;span class="attrv"&gt;	RFQ_DUE_DATE = @RFQ_DUE_DATE, TARGET_DATE = @TARGET_DATE, DATE_DUE_TO_CUSTOMER = @DATE_DUE_TO_CUSTOMER, &lt;/span&gt;&lt;/pre&gt;&lt;pre class="coloredcode"&gt;&lt;span class="attrv"&gt;	SUBMITTED_DATE = @SUBMITTED_DATE, FINAL_STATUS_DATE = @FINAL_STATUS_DATE WHERE MAIN_ID = @MAIN_ID&amp;quot;&lt;/span&gt;
&lt;b id="46"&gt;46   &lt;/b&gt;&lt;span class="attr"&gt;        OldValuesParameterFormatString=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;{0}&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; OnUpdated=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;sqlupdated&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; ConflictDetection=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;CompareAllValues&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt; OnUpdating=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;SQLUpdating&amp;quot;&lt;/span&gt;&amp;gt;
&lt;b id="47"&gt;47   &lt;/b&gt;        &amp;lt;&lt;span class="tag"&gt;UpdateParameters&lt;/span&gt;&amp;gt;
&lt;b id="48"&gt;48   &lt;/b&gt;            &amp;lt;&lt;span class="tag"&gt;asp:Parameter&lt;/span&gt;&lt;span class="attr"&gt; Name=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;CUSTOMER_NAME&amp;quot;&lt;/span&gt; /&amp;gt;
&lt;b id="49"&gt;49   &lt;/b&gt;            &amp;lt;&lt;span class="tag"&gt;asp:Parameter&lt;/span&gt;&lt;span class="attr"&gt; Name=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;B_AND_P&amp;quot;&lt;/span&gt; /&amp;gt;
&lt;b id="50"&gt;50   &lt;/b&gt;            &amp;lt;&lt;span class="tag"&gt;asp:Parameter&lt;/span&gt;&lt;span class="attr"&gt; Name=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;RPF_RFQ&amp;quot;&lt;/span&gt; /&amp;gt;
&lt;b id="51"&gt;51   &lt;/b&gt;            &amp;lt;&lt;span class="tag"&gt;asp:Parameter&lt;/span&gt;&lt;span class="attr"&gt; Name=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;DIVISION&amp;quot;&lt;/span&gt; /&amp;gt;
&lt;b id="52"&gt;52   &lt;/b&gt;            &amp;lt;&lt;span class="tag"&gt;asp:Parameter&lt;/span&gt;&lt;span class="attr"&gt; Name=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;TITLE&amp;quot;&lt;/span&gt; /&amp;gt;
&lt;b id="53"&gt;53   &lt;/b&gt;            &amp;lt;&lt;span class="tag"&gt;asp:Parameter&lt;/span&gt;&lt;span class="attr"&gt; Name=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;END_USER&amp;quot;&lt;/span&gt; /&amp;gt;
&lt;b id="54"&gt;54   &lt;/b&gt;            &amp;lt;&lt;span class="tag"&gt;asp:Parameter&lt;/span&gt;&lt;span class="attr"&gt; Name=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;PROGRAM_MANAGER&amp;quot;&lt;/span&gt; /&amp;gt;
&lt;b id="55"&gt;55   &lt;/b&gt;            &amp;lt;&lt;span class="tag"&gt;asp:Parameter&lt;/span&gt;&lt;span class="attr"&gt; Name=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;CONTRACT_REP&amp;quot;&lt;/span&gt; /&amp;gt;
&lt;b id="56"&gt;56   &lt;/b&gt;            &amp;lt;&lt;span class="tag"&gt;asp:Parameter&lt;/span&gt;&lt;span class="attr"&gt; Name=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;PRICER&amp;quot;&lt;/span&gt; /&amp;gt;
&lt;b id="57"&gt;57   &lt;/b&gt;            &amp;lt;&lt;span class="tag"&gt;asp:Parameter&lt;/span&gt;&lt;span class="attr"&gt; Name=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;SUBCONTRACT_REP&amp;quot;&lt;/span&gt; /&amp;gt;
&lt;b id="58"&gt;58   &lt;/b&gt;            &amp;lt;&lt;span class="tag"&gt;asp:Parameter&lt;/span&gt;&lt;span class="attr"&gt; Name=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;PROJECT_CONTROLLER&amp;quot;&lt;/span&gt; /&amp;gt;
&lt;b id="59"&gt;59   &lt;/b&gt;            &amp;lt;&lt;span class="tag"&gt;asp:Parameter&lt;/span&gt;&lt;span class="attr"&gt; Name=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;TASK_VALUE&amp;quot;&lt;/span&gt; /&amp;gt;
&lt;b id="60"&gt;60   &lt;/b&gt;            &amp;lt;&lt;span class="tag"&gt;asp:Parameter&lt;/span&gt;&lt;span class="attr"&gt; Name=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;RFQ_EXPECTED_DATE&amp;quot;&lt;/span&gt; /&amp;gt;
&lt;b id="61"&gt;61   &lt;/b&gt;            &amp;lt;&lt;span class="tag"&gt;asp:Parameter&lt;/span&gt;&lt;span class="attr"&gt; Name=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;RFQ_DUE_DATE&amp;quot;&lt;/span&gt; /&amp;gt;
&lt;b id="62"&gt;62   &lt;/b&gt;            &amp;lt;&lt;span class="tag"&gt;asp:Parameter&lt;/span&gt;&lt;span class="attr"&gt; Name=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;TARGET_DATE&amp;quot;&lt;/span&gt; /&amp;gt;
&lt;b id="63"&gt;63   &lt;/b&gt;            &amp;lt;&lt;span class="tag"&gt;asp:Parameter&lt;/span&gt;&lt;span class="attr"&gt; Name=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;DATE_DUE_TO_CUSTOMER&amp;quot;&lt;/span&gt; /&amp;gt;
&lt;b id="64"&gt;64   &lt;/b&gt;            &amp;lt;&lt;span class="tag"&gt;asp:Parameter&lt;/span&gt;&lt;span class="attr"&gt; Name=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;SUBMITTED_DATE&amp;quot;&lt;/span&gt; /&amp;gt;
&lt;b id="65"&gt;65   &lt;/b&gt;            &amp;lt;&lt;span class="tag"&gt;asp:Parameter&lt;/span&gt;&lt;span class="attr"&gt; Name=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;FINAL_STATUS_DATE&amp;quot;&lt;/span&gt; /&amp;gt;
&lt;b id="66"&gt;66   &lt;/b&gt;            &amp;lt;&lt;span class="tag"&gt;asp:Parameter&lt;/span&gt;&lt;span class="attr"&gt; Name=&lt;/span&gt;&lt;span class="attrv"&gt;&amp;quot;MAIN_ID&amp;quot;&lt;/span&gt; /&amp;gt;
&lt;b id="67"&gt;67   &lt;/b&gt;        &amp;lt;/&lt;span class="tag"&gt;UpdateParameters&lt;/span&gt;&amp;gt;
&lt;b id="68"&gt;68   &lt;/b&gt;    &amp;lt;/&lt;span class="tag"&gt;asp:SqlDataSource&lt;/span&gt;&amp;gt;
&lt;b id="69"&gt;69   &lt;/b&gt;&amp;lt;/&lt;span class="tag"&gt;asp:Content&lt;/span&gt;&amp;gt;
&lt;/pre&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/pre&gt;&lt;pre class="coloredcode"&gt;Everything appears to work perfectly, when I hit a row&amp;#39;s edit link; all the appropriate fields become textboxes and I can edit to my heart&amp;#39;s content.  &lt;/pre&gt;&lt;pre class="coloredcode"&gt;When I hit update, however, nothing happens, no errors, no exceptions; my original data reappears unchanged.  &lt;/pre&gt;&lt;pre class="coloredcode"&gt;I&amp;#39;ve created handlers for GridView&amp;#39;s OnRowUpdated and OnRowUpdating events and placed breakpoints in both that get hit.  &lt;/pre&gt;&lt;pre class="coloredcode"&gt;I&amp;#39;ve also created handlers for SqlDataSource&amp;#39;s OnUpdated and OnUpdating events which both also get hit.  &lt;/pre&gt;&lt;pre class="coloredcode"&gt;SqlDataSource&amp;#39;s.OnUpdated indicates a 0 for its e.affectedrows, but no exceptions are generated.  &lt;/pre&gt;&lt;pre class="coloredcode"&gt;One unusual thing I did discover is that SqlDtaSource&amp;#39;s.OnUpdating handler is indicating a value of &amp;#39;Both&amp;#39; for it&amp;#39;s &lt;font size="2"&gt;&lt;p&gt;e.Command.UpdatedRowSource.ToString(), which I understand it bad, but I cannot quite wrap my head around MSDN&amp;#39;s verbiage on why.  &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;As I continued on my search for the problem, I created a new independent GridView and SqlDataSource with all the same characteristics as my first;&lt;/p&gt;&lt;p&gt;columns allowing null values, primary-key columns, varchar data types, date datatypes, ints, and everything behaved beautifully for a while.  &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Then I tried adding a sub-query, foreign-key field just like the CURRENT_STATUS_DESCRIPTION within my original SqlDataSource and suddenly it adopted &lt;/p&gt;&lt;p&gt;the exact same behavior as that of my first GridView.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;So, in a nutshell, it seems as though the SqlDataSource update ability is quietly disabled when it&amp;#39;s dealing with datasets that have fields &lt;/p&gt;&lt;p&gt;supplied via subqueries, but why?&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I&amp;#39;m not including those fields within my update parameters, so why wouldn&amp;#39;t it just treat them the same as a primary key field and ignore them as &lt;/p&gt;&lt;p&gt;part of the update.  And more importantly why is this behavior so silent, generating no exceptions of any kind?  &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Any insight/help would be greatly appreciated!!&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;&lt;/p&gt;&lt;/pre&gt;&lt;/font&gt;</description></item></channel></rss>