На моей странице есть GridView для управления фабричными заводами. Я могу успешно редактировать данные в сетке, щелкнув ссылку редактирования, а затем сохранив свои изменения после нажатия ссылки обновления. Я хочу, чтобы столбец ID сетки был скрыт от пользователя, поэтому я добавил свойство Visible в столбец Plant_ID сетки и установил для него значение false, столбец скрыт, но я получаю сообщение об ошибке: «Входная строка не была в правильном формате» после перехода по ссылке обновления.
Это мой источник данных Grid и SQL:
<asp:GridView ID="GridPlants" runat="server" DataKeyNames="Plant_ID" AllowPaging="True" PageSize="7"
AllowSorting="True" AutoGenerateColumns="False" AutoGenerateEditButton="True"
BorderWidth="2px" CellPadding="2" CssClass="datatable" GridLines="None"
ShowFooter="True" SortedAscendingCellStyle-CssClass="sortasc" OnSorting="gvPlant_Sorting"
SortedAscendingHeaderStyle-CssClass="sortasc"
SortedDescendingCellStyle-CssClass="sortdesc"
SortedDescendingHeaderStyle-CssClass="sortdesc"
OnRowCancelingEdit="GridPlants_RowCancelingEdit"
OnRowEditing="GridPlants_RowEditing" OnRowUpdating="GridPlants_RowUpdating" OnPageIndexChanging="gvPlants_PageIndexChanging"
>
<EditRowStyle />
<PagerStyle CssClass="pager-row" />
<RowStyle CssClass="row" />
<Columns>
<asp:BoundField DataField="Plant_ID" HeaderText="ID" InsertVisible="False"
ReadOnly="True" SortExpression="Plant_ID" Visible="false" />
<asp:TemplateField HeaderText="Plant Name" SortExpression="Plant_Name">
<EditItemTemplate>
<asp:TextBox ID="Txtplant" runat="server" Text='<%# Bind("Plant_Name") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("Plant_Name") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Plant Code" SortExpression="Plant_code">
<EditItemTemplate>
<asp:TextBox ID="Txtcode" runat="server" Text='<%# Bind("Plant_code") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Bind("Plant_code") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Address" SortExpression="Address">
<EditItemTemplate>
<asp:TextBox ID="Txtaddress" runat="server" Text='<%# Bind("Address") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label3" runat="server" Text='<%# Bind("Address") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="City" SortExpression="City">
<EditItemTemplate>
<asp:TextBox ID="Txtcity" runat="server" Text='<%# Bind("City") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label4" runat="server" Text='<%# Bind("City") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="State" SortExpression="State">
<EditItemTemplate>
<asp:TextBox ID="Txtstate" runat="server" Text='<%# Bind("State") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label5" runat="server" Text='<%# Bind("State") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Zip" SortExpression="Zip">
<EditItemTemplate>
<asp:TextBox ID="Txtzip" runat="server" Text='<%# Bind("Zip") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label6" runat="server" Text='<%# Bind("Zip") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Plant Email" SortExpression="Plant_Email">
<EditItemTemplate>
<asp:TextBox ID="Txtemail" runat="server" Text='<%# Bind("Plant_Email") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label7" runat="server" Text='<%# Bind("Plant_Email") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Active" SortExpression="Active">
<EditItemTemplate>
<asp:CheckBox ID="Chkactive" runat="server" Checked='<%# Bind("Active") %>'
Enabled="false" />
</EditItemTemplate>
<ItemTemplate>
<asp:CheckBox ID="CheckBox2" runat="server" Checked='<%# Bind("Active") %>'
Enabled="false" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="UpdateBy" HeaderText="Update By"
ReadOnly="True" SortExpression="UpdateBy" />
<asp:BoundField DataField="UpdateDate" HeaderText="Update Date" ReadOnly="True"
SortExpression="UpdateDate" />
</Columns>
<%-- <PagerSettings FirstPageText="«" LastPageText="»" Mode="NumericFirstLast"
PageButtonCount="7" />--%>
<SortedAscendingCellStyle CssClass="sortasc" />
<SortedAscendingHeaderStyle CssClass="sortasc" />
<SortedDescendingCellStyle CssClass="sortdesc" />
<SortedDescendingHeaderStyle CssClass="sortdesc" />
</asp:GridView>
<asp:SqlDataSource ID="PlantDataSource" runat="server" ConnectionString="<%$ ConnectionStrings:ShipmentNotification %>"
SelectCommand="select Plant_ID, Plant_Name, Plant_code, Address, City, State, Zip, Plant_Email, Active, UpdateDate, UpdateBy from Plant order by plant_code">
</asp:SqlDataSource>
Это моя функция обновления:
Protected Sub GridPlants_RowUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles GridPlants.RowUpdating
Dim Editrow As GridViewRow = GridPlants.Rows(e.RowIndex)
Dim PlantId As String = GridPlants.DataKeys(e.RowIndex)("Plant_ID")
Dim textplant As TextBox = Editrow.FindControl("txtplant")
Dim textcode As TextBox = Editrow.FindControl("txtcode")
Dim checkbox As CheckBox = Editrow.FindControl("chkactive")
Dim address As TextBox = Editrow.FindControl("txtaddress")
Dim city As TextBox = Editrow.FindControl("txtcity")
Dim state As TextBox = Editrow.FindControl("txtstate")
Dim zip As TextBox = Editrow.FindControl("txtzip")
Dim email As TextBox = Editrow.FindControl("txtemail")
'I get an error on the following line:
DL.AddUpdatePlants("Admin", "Edit", Editrow.Cells(1).Text, textplant.Text, textcode.Text, address.Text, city.Text, state.Text, zip.Text, email.Text, checkbox.Checked)
'CType(Editrow.Cells(2).Controls(0), TextBox)).
GridPlants.EditIndex = -1
BindData()
End Sub
... Фрагмент хранимой процедуры:
Dim myCommand As New SqlCommand("SavePlantDetails", myConnection)
myCommand.CommandType = CommandType.StoredProcedure
myCommand.Parameters.AddWithValue("@editType", addupdate)
myCommand.Parameters.AddWithValue("@Plant_ID", plant_id)
myCommand.Parameters.AddWithValue("@Plant_Name", name)
myCommand.Parameters.AddWithValue("@Plant_code", code)
myCommand.Parameters.AddWithValue("@address", address)
myCommand.Parameters.AddWithValue("@city", city)
myCommand.Parameters.AddWithValue("@state", state)
myCommand.Parameters.AddWithValue("@zip", zip)
myCommand.Parameters.AddWithValue("@email", email)
myCommand.Parameters.AddWithValue("@username", username)
myCommand.Parameters.AddWithValue("@Active", active)
myCommand.ExecuteNonQuery()
myConnection.Close()
... Мне интересно, скрывает ли это поле Plant_ID, как я упорядочиваю свои столбцы? Могу ли я получить некоторую помощь с этой проблемой, пожалуйста? Я получаю сообщение об ошибке только после того, как добавил свойство Visible в столбец Plant_ID и установил для него значение True. Заранее спасибо.