aspx thread: Please help-- DataGrid update command not working and driving me
insane.
I've been at this for two days now.
The datagrid bits:
<asp:DataGrid
ID="RelatedGrid"
DataKeyField="RelatedItemsID"
Cellpadding="3"
AutoGenerateColumns="False"
OnEditCommand="DoItemEdit"
OnUpdateCommand="DoItemUpdate"
OnCancelCommand="DoItemCancel"
Visible="False"
Runat="server">
<asp:TemplateColumn
HeaderStyle-Width="150"
HeaderStyle-CssClass="projectDataHeader"
ItemStyle-CssClass="projectData"
HeaderText="Related">
<ItemTemplate>
<a
href='relateditems.aspx?id=<%# DataBinder.Eval (Container.DataItem,
"RelatedWebPartNumber") %>'><%# DataBinder.Eval (Container.DataItem,
"RelatedWebPartNumber") %></a>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox
ID="RelatedWebPartNumberBox"
Text='<%#
DataBinder.Eval (Container.DataItem, "RelatedWebPartNumber") %>'
MaxLength="9"
Runat="server" />
<asp:RequiredFieldValidator
ID="RelatedWebPartNumberValidator"
ControlToValidate="RelatedWebPartNumberBox"
Display="Dynamic"
ErrorMessage="<br />* Cannot be blank"
Runat="server" />
</EditItemTemplate>
</asp:TemplateColumn>
And the DoItemUpdate void:
public void DoItemUpdate (object sender,
DataGridCommandEventArgs e)
{
/*
*
* DoItemUpdate (object sender,
DataGridCommandEventArgs e)
* Updates an item in the WC_RelatedItems table
*
*/
string strRelatedWebPartNumber
((TextBox)e.Item.FindControl("RelatedWebPartNumberBox")).Text;
this.objCom.Connection = this.objConn;
this.objCom.CommandType
CommandType.StoredProcedure;
this.objCom.CommandText
"aspx_Catalog_AddRelatedItem";
this.objCom.Parameters.Clear();
this.objCom.Parameters.Add (new SqlParameter
("@operation", SqlDbType.VarChar, 1));
this.objCom.Parameters["@operation"].Value = "U";
// U for operation means update
this.objCom.Parameters.Add (new SqlParameter
("@ItemIndex", SqlDbType.Int, 1));
this.objCom.Parameters["@ItemIndex"].Value
(int)this.RelatedGrid.DataKeys[e.Item.ItemIndex];
this.objCom.Parameters.Add (new SqlParameter
("@PrimaryWebPartNumber", SqlDbType.VarChar, 9));
this.objCom.Parameters["@PrimaryWebPartNumber"].Value
this.PrimaryWebPartNumber.Value;
this.objCom.Parameters.Add (new SqlParameter
("@RelatedWebPartNumber", SqlDbType.VarChar, 9));
this.objCom.Parameters["@RelatedWebPartNumber"].Value
strRelatedWebPartNumber;
this.objCom.Parameters.Add (new SqlParameter
("@user", SqlDbType.VarChar, 50));
this.objCom.Parameters["@user"].Value
Session["LOGON_NAME"].ToString();
this.objCom.Parameters.Add (new
SqlParameter("ReturnValue", SqlDbType.Int, 4));
this.objCom.Parameters["ReturnValue"].Direction
ParameterDirection.ReturnValue;
try
{
this.objConn.Open();
this.objCom.ExecuteNonQuery();
this.objConn.Close();
int x
(int)this.objCom.Parameters["ReturnValue"].Value;
if (x == 0)
{
this.ErrorMessages.InnerHtml
"<i> <b>ERROR:</b> That web part number (" + strRelatedWebPartNumber +
") was not found.</i>";
this.ErrorMessages.Visible = true;
}
else
{
AddItem.Visible = false;
this.ErrorMessages.Visible = false;
this.BindData();
this.searchBox.Visible = true;
this.searchBtn.Visible = true;
this.searchLabel.Visible = true;
this.addBtn.Visible = true;
this.RelatedGrid.EditItemIndex = -1;
this.BindData();
}
}
catch (Exception objError)
{
this.ErrorMessages.InnerHtml
"<b>ERROR:</b>: There was an error in your operation, please try
again.<br/><b>Message:</b> " + objError.Message.ToString();
this.ErrorMessages.Visible = true;
}
}
--
It updates every field in the DB except the RelatedWebPartNumber. There is
no problem with the stored proc because if I execute it via the query window
it works fine. Any tips?! Thanks!
Wells Oliver
Web Applications Programmer
Leviton Voice & Data
xxx-xxx-xxxx
http://www.levitonvoicedata.com