how to use radgrid AllowAutomaticInserts, and insertcommand - c#

I'm new to Asp.net and Telerik Control.
I'm using Radgrid to bind a View with schemabinding in SQL Server. And I want to use Telerik Radgrid AllowAutomaticInserts/updates/deletes functions. but there is no result return to database and no error occured. When should I use Insertcommand in code-behind? How to debug aspx file as following at runtime.
Thanks in advance.
Here is the code.
<asp:Panel ID="Project" runat="server" GroupingText="Project" CssClass="inlineBlock" Width="1600px" Font-Names="Microsoft YaHei UI"
BackColor ="#99ff99" BorderStyle="Double">
<asp:Label Text="CompanyName" runat="server" Font-Size="Small"></asp:Label>
<telerik:RadDropDownList ID="RadDropDownListCompany" runat="server" Skin="Windows7" Font-Size="Small" AutoPostBack="true" OnSelectedIndexChanged="RadDropDownListCompany_SelectedIndexChanged"
></telerik:RadDropDownList>
<asp:Label Text="Projectname" runat="server" Font-Size="Small"></asp:Label>
<telerik:RadDropDownList ID="RadDropDownListProject" runat="server" Skin="Windows7" Font-Size="Small" ></telerik:RadDropDownList>
<telerik:RadButton ID="btnQuery" runat="server" Text="Confirm" Skin="Windows7" Font-Size="Small" OnClick="btnQuery_Click" ></telerik:RadButton>
</asp:Panel>
<asp:Panel ID="PanelOp" runat="server" Visible="false" >
<asp:Label Text="LandBlock" runat="server" Font-Size="Medium" Font-Names="Microsoft YaHei UI"></asp:Label>
<telerik:RadDropDownList ID="RadDropDownListLandBlock" runat="server" Skin="Windows7" Font-Size="Small" Font-Names="Microsoft YaHei UI"></telerik:RadDropDownList>
<telerik:RadButton ID="radbtnLandBlockQuery" runat="server" Text="Confirm" Skin="Windows7" Font-Size="Small" OnClick="radbtnLandBlockQuery_Click" ></telerik:RadButton>
<telerik:RadGrid ID="RadGridLandBlockVoucher" runat="server" Skin="Windows7" Font-Size="Small" Font-Names="Microsoft YaHei UI" Culture="zh-CN"
Height="600px" Width="1600px" GroupPanelPosition="Top" ShowFooter ="True" EnableViewState="true" AutoGenerateEditColumn="true" AutoGenerateDeleteColumn="true"
AllowAutomaticInserts="true" AllowAutomaticUpdates="true" AllowAutomaticDeletes="true" OnNeedDataSource="RadGridLandBlockVoucher_NeedDataSource" >
<ClientSettings>
<Scrolling AllowScroll="True" UseStaticHeaders="True" />
</ClientSettings>
<MasterTableView AutoGenerateColumns="False" DataKeyNames="PK_Landdetail" CommandItemDisplay="Top"
CommandItemSettings-AddNewRecordText="Add" >
<Columns>
<telerik:GridBoundColumn DataField="PK_Landdetail" DataType="System.Guid" FilterControlAltText="Filter PK_Landdetail column" HeaderText="PK_Landdetail" ReadOnly="True" SortExpression="PK_Landdetail" UniqueName="PK_Landdetail" Visible="false" >
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="PK_location" DataType="System.Int32" FilterControlAltText="Filter PK_location column" HeaderText="PK_location" SortExpression="PK_location" UniqueName="PK_location" Visible="false" ReadOnly="true" >
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="ProjectName" FilterControlAltText="Filter ProjectName column" HeaderText="ProjectName" SortExpression="ProjectName" UniqueName="ProjectName" ReadOnly="true" >
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="PK_land" DataType="System.Guid" FilterControlAltText="Filter PK_land column" HeaderText="PK_land" SortExpression="PK_land" UniqueName="PK_land" Visible="false" ReadOnly="true" >
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="LandBlockNumber" FilterControlAltText="Filter LandBlockNumber column" HeaderText="LandBlockNumber" SortExpression="LandBlockNumber" UniqueName="LandBlockNumber" ReadOnly="true" >
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="PK_ccode" DataType="System.Int32" FilterControlAltText="Filter PK_ccode column" HeaderText="PK_ccode" SortExpression="PK_ccode" UniqueName="PK_ccode" Visible="false" ReadOnly="true" >
</telerik:GridBoundColumn>
<telerik:GridTemplateColumn FilterControlAltText="Filter ccodenamefull column" HeaderText="科目" SortExpression="ccodenamefull" UniqueName="ccodenamefull">
<ItemTemplate>
<%# Eval("ccodenamefull") %>
</ItemTemplate>
<EditItemTemplate>
<telerik:RadDropDownList runat="server" ID="RadDropDownListCcode" DataSourceID="SqlDataSourceccode" DataValueField="PK_ccode" DataTextField="ccodenamefull" SelectedValue='<%# Eval ("ccodenamefull") %>' Width="200px" ></telerik:RadDropDownList>
</EditItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridBoundColumn DataField="PayableAmount" DataType="System.Decimal" FilterControlAltText="Filter PayableAmount column" HeaderText="PayableAmount" SortExpression="PayableAmount" UniqueName="PayableAmount">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="ActualAmount" DataType="System.Decimal" FilterControlAltText="Filter ActualAmount column" HeaderText="ActualAmount" SortExpression="ActualAmount" UniqueName="ActualAmount">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="ContractNo" FilterControlAltText="Filter ContractNo column" HeaderText="ContractNo" SortExpression="ContractNo" UniqueName="ContractNo">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="ContractName" FilterControlAltText="Filter ContractName column" HeaderText="ContractName" SortExpression="ContractName" UniqueName="ContractName">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="LandTransferArea" DataType="System.Decimal" FilterControlAltText="Filter LandTransferArea column" HeaderText="LandTransferArea" SortExpression="LandTransferArea" UniqueName="LandTransferArea">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="LandLisenceArea" DataType="System.Decimal" FilterControlAltText="Filter LandLisenceArea column" HeaderText="LandLisenceArea" SortExpression="LandLisenceArea" UniqueName="LandLisenceArea">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="LisenceNo" FilterControlAltText="Filter LisenceNo column" HeaderText="LisenceNo" SortExpression="LisenceNo" UniqueName="LisenceNo">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="InvoiceAmount" DataType="System.Decimal" FilterControlAltText="Filter InvoiceAmount column" HeaderText="InvoiceAmount" SortExpression="InvoiceAmount" UniqueName="InvoiceAmount">
</telerik:GridBoundColumn>
<telerik:GridTemplateColumn DataField="LisenceStartDate" DataType="System.DateTime" FilterControlAltText="Filter LisenceStartDate column" HeaderText="证照起始日" SortExpression="LisenceStartDate" UniqueName="LisenceStartDate">
<ItemTemplate>
<%# Eval("LisenceStartDate") %>
</ItemTemplate>
<EditItemTemplate>
<telerik:RadDatePicker ID="RadDatePickerLisenceStartDate" runat="server" DbSelectedDate= '<%# Bind("LisenceStartDate") %>' MinDate="1900-1-1" ></telerik:RadDatePicker>
</EditItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridBoundColumn DataField="LisenceEndDate" DataType="System.DateTime" FilterControlAltText="Filter LisenceEndDate column" HeaderText="LisenceEndDate" SortExpression="LisenceEndDate" UniqueName="LisenceEndDate">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="Note" FilterControlAltText="Filter Note column" HeaderText="Note" SortExpression="Note" UniqueName="Note">
</telerik:GridBoundColumn>
</Columns>
</MasterTableView>
</telerik:RadGrid>
<asp:SqlDataSource ID="SqlDataSourceLandblockCostView" runat="server" ConnectionString="<%$ ConnectionStrings:myAsystemstring %>"
SelectCommand="SELECT * FROM [LD_LandblockCostView] WHERE [PK_location] = #PK_location AND [PK_land] = #PK_land"
DeleteCommand="delete * from [LD_LandblockCostView] WHERE PK_Landdetail=#PK_Landdetail"
InsertCommand ="INSERT INTO [LD_LandblockCostView] ([PK_location], [PK_land], [PK_ccode], [PayableAmount], [ActualAmount], [ContractNo], [ContractName], [LandTransferArea], [LandLisenceArea], [LisenceNo], [invoiceAmount], [Note], [LisenceStartDate], [LisenceEndDate])
VALUES (#PK_location,#PK_land, #PK_ccode,#PayableAmount, #ActualAmount, #ContractNo,#ContractName,#LandTransferArea,#LandLisenceArea,#LisenceNo,#invoiceAmount,#Note,#LisenceStartDate,#LisenceEndDate)"
UpdateCommand="UPDATE [LD_LandblockCostView] SET [PK_ccode] = #PK_ccode, [PayableAmount] = #PayableAmount, [ActualAmount]=#ActualAmount,[ContractNo]=#ContractNo,[ContractName]=#ContractName,[LandTransferArea]=#LandTransferArea,[LandLisenceArea]=#LandLisenceArea,[LisenceNo]=#LisenceNo,[invoiceAmount]=#invoiceAmount,[Note]=#Note,[LisenceStartDate]=#LisenceStartDate,[LisenceEndDate]=#LisenceEndDate
WHERE [PK_Landdetail] = #PK_Landdetail" >
<SelectParameters>
<asp:ControlParameter ControlID="RadDropDownListProject" Name="PK_location" PropertyName="SelectedValue" Type="Int32" />
<asp:ControlParameter ControlID="RadDropDownListLandBlock" Name="PK_land" PropertyName="SelectedValue" Type="String" />
</SelectParameters>
<DeleteParameters>
<asp:Parameter Name ="PK_Landdetail" Type="String" />
</DeleteParameters>
<InsertParameters>
<asp:ControlParameter Name="PK_location" Type="Int32" ControlID="RadDropDownListCompany" PropertyName="SelectedValue" />
<asp:ControlParameter Name="PK_land" Type="String" ControlID="RadDropDownListLandBlock" PropertyName="SelectedValue" />
<asp:ControlParameter Name="PK_ccode" Type="Int32" ControlID="RadDropDownListCcode" PropertyName ="SelectedValue" />
<asp:Parameter Name="PayableAmount" Type="Decimal" />
<asp:Parameter Name="ActualAmount" Type="Decimal" />
<asp:Parameter Name="ContractNo" Type="String" />
<asp:Parameter Name="ContractName" Type="String" />
<asp:Parameter Name="LandTransferArea" Type="Decimal" />
<asp:Parameter Name="LandLisenceArea" Type="Decimal" />
<asp:Parameter Name="LisenceNo" Type="String" />
<asp:Parameter Name="invoiceAmount" Type="Decimal" />
<asp:Parameter Name="Note" Type="String" />
<asp:Parameter Name="LisenceStartDate" Type ="DateTime" />
<asp:Parameter Name="LisenceEndDate" Type="DateTime" />
</InsertParameters>
<UpdateParameters>
<asp:Parameter Name ="PK_ccode" Type="Int32" />
<asp:Parameter Name="PayableAmount" Type="Decimal" />
<asp:Parameter Name="ActualAmount" Type="Decimal" />
<asp:Parameter Name="ContractNo" Type="String" />
<asp:Parameter Name="ContractName" Type="String" />
<asp:Parameter Name="LandTransferArea" Type="Decimal" />
<asp:Parameter Name="LandLisenceArea" Type="Decimal" />
<asp:Parameter Name="LisenceNo" Type="String" />
<asp:Parameter Name="invoiceAmount" Type="Decimal" />
<asp:Parameter Name="Note" Type="String" />
<asp:Parameter Name="LisenceStartDate" Type ="DateTime" />
<asp:Parameter Name="LisenceEndDate" Type="DateTime" />
</UpdateParameters>
</asp:SqlDataSource>
<asp:SqlDataSource ID="SqlDataSourceccode" runat="server" ConnectionString="<%$ ConnectionStrings:myAsystemstring %>" SelectCommand="SELECT [PK_ccode], [ccodenamefull] FROM [Ref_ccodenameLandBlockCost]" ></asp:SqlDataSource>
</asp:Panel>
Code-behind
protected void RadGridLandBlockVoucher_NeedDataSource(object sender, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
{
RadGridLandBlockVoucher.DataSource = SqlDataSourceLandblockCostView;
}

You have the SQL queries defined in a declarative data source. Use that for the DataSourceID of the grid and remove the NeedDataSource handler. The SELECT query will handler your data retrieval.
If you want to use the NeedDataSource event to use some custom data access layer/logic, you should then disable the automatic operations and use the events to write your own code according to your logic/DAL.

Related

why Gridview commonfield Update command is not working?

i have attached my gridview with id= "project_update_GridView" and Datasource. delete command works good but update command is not working.
some additional information:
This gridview is placed in a Modal Popup
All edit,update and delete command works well in empty webform but it doesn't works in my main solution webform
<div id="project_update_panel" class="popup " style="margin-left: 40px">
<label runat="server" id="project_overview"><i class='bx bx-sort-up'></i>Update Project<i id="close_popup_projectUP" class='bx bx-x-circle update-project-popup'></i></label>
<asp:Panel ID="project_update_popup_panel" runat="server" ScrollBars="Auto" CssClass="update-project-panel">
<%--update project Data source--%>
<asp:SqlDataSource ID="project_update_DS" runat="server" ConnectionString="<%$ ConnectionStrings:Timesheet_DBConnectionString %>" SelectCommand="SELECT [id], [employee_id], [project_id], [project_name], [product_name], [client_name], [project_team], [start_date], [project_team_email_id], [project_status] FROM [project_details] WHERE (([employee_id] = #employee_id) AND ([project_type] = #project_type))" DeleteCommand="DELETE FROM [project_details] WHERE [id] = #original_id" InsertCommand="INSERT INTO [project_details] ([employee_id], [project_id], [project_name], [product_name], [client_name], [project_team], [start_date], [project_team_email_id], [project_status]) VALUES (#employee_id, #project_id, #project_name, #product_name, #client_name, #project_team, #start_date, #project_team_email_id, #project_status)" UpdateCommand="UPDATE [project_details] SET [id]=#id [employee_id] = #employee_id, [project_id] = #project_id, [project_name] = #project_name, [product_name] = #product_name, [client_name] = #client_name, [project_team] = #project_team, [start_date] = #start_date, [project_team_email_id] = #project_team_email_id, [project_status] = #project_status WHERE [id] = #original_id">
<SelectParameters>
<asp:ControlParameter ControlID="employee_id" PropertyName="Text" Name="employee_id" Type="String"></asp:ControlParameter>
<asp:Parameter DefaultValue="individual" Name="project_type" Type="String"></asp:Parameter>
</SelectParameters>
<UpdateParameters>
<asp:Parameter Name="id" Type="String"></asp:Parameter>
<asp:Parameter Name="project_id" Type="String"></asp:Parameter>
<asp:Parameter Name="project_name" Type="String"></asp:Parameter>
<asp:Parameter Name="product_name" Type="String"></asp:Parameter>
<asp:Parameter Name="client_name" Type="String"></asp:Parameter>
<asp:Parameter Name="project_team" Type="String"></asp:Parameter>
<asp:Parameter DbType="DateTime2" Name="start_date"></asp:Parameter>
<asp:Parameter Name="project_team_email_id" Type="String"></asp:Parameter>
</UpdateParameters>
</asp:SqlDataSource>
<%--update project main content--%>
<asp:UpdatePanel runat="server" UpdateMode= "Conditional">
<ContentTemplate>
<asp:GridView ID="project_update_GridView" runat="server" AllowPaging="True" AllowSorting="True" DataSourceID="project_update_DS" CssClass="main-grid-table" HeaderStyle-CssClass="main-grid-header" RowStyle-CssClass="main-grid-row" AutoGenerateColumns="False" DataKeyNames="id" OnRowUpdating="project_update_GridView_RowUpdating" ViewStateMode="Inherit" SortedAscendingHeaderStyle-Wrap="True" EnableViewState="False" EnableModelValidation="False">
<Columns>
<asp:TemplateField HeaderText="<i class='bx bxs-sticker'></i>">
<ItemTemplate>
<input type="checkbox" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="id" HeaderText="ID" ReadOnly="True" InsertVisible="False" SortExpression="id"></asp:BoundField>
<asp:BoundField DataField="employee_id" HeaderText="Employee ID" SortExpression="employee_id" ReadOnly="true" />
<asp:BoundField DataField="project_id" HeaderText="Project ID" SortExpression="project_id" ReadOnly="true" />
<asp:BoundField DataField="project_name" HeaderText="Project Name" SortExpression="project_name" />
<asp:BoundField DataField="product_name" HeaderText="Product Name" SortExpression="product_name" />
<asp:BoundField DataField="client_name" HeaderText="Client Name" SortExpression="client_name" />
<asp:BoundField DataField="project_team" HeaderText="Team" SortExpression="project_team" />
<asp:BoundField DataField="start_date" HeaderText="Date Started" SortExpression="start_date" />
<asp:BoundField DataField="project_team_email_id" HeaderText="Team Email" SortExpression="project_team_email_id" />
<asp:TemplateField HeaderText="Status" SortExpression="Status" ItemStyle-HorizontalAlign="Left">
<ItemTemplate>
<i class='bx bxs-circle' style='color: #01bf00; display: contents; font-size: x-small;'></i></span><asp:Label ID="status" Style="margin-left: 3px;" runat="server" Text='<%#Bind("project_status")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:CommandField HeaderText="Action" ShowSelectButton="false" ShowEditButton="True" EditText="<i class='bx bx-edit'></i>" UpdateText="<i class='bx bx-upload'></i>" CancelText="<i class='bx bx-x-circle'></i>"/>
</Columns>
<EmptyDataTemplate>
<div class="update-default-content" id="update_default_content" runat="server">
<asp:ImageButton runat="server" src="IMG/Create_project_icon.png" ID="update_create_icon" Style="filter: contrast(0.1%);" OnClientClick="javascript:$find('ModalPopupExtender2').hide();$find('create_project_icon').show(); return false;" /><br />
<span>Create Project</span>
</div>
</EmptyDataTemplate>
<HeaderStyle CssClass="main-grid-header" />
<RowStyle CssClass="main-grid-row" />
<SortedDescendingCellStyle />
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Panel>
</div>

How to bind CheckBox in ASPxGridView EditItemTemplate

I am working with DevExpress Asp.Net Controls, In GridView EditTempalte have to add checkbox, have to bind checkbox check and uncheck with database column property and on new item insert default unchecked.
here my code.
<dx:ASPxGridView ID="ASPxGridView3" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource3"
KeyFieldName="UniqueID" Theme="Default">
<SettingsSearchPanel Visible="True" />
<Columns>
<dx:GridViewCommandColumn ShowDeleteButton="True" ShowEditButton="True" ShowInCustomizationForm="True"
ShowNewButtonInHeader="True" VisibleIndex="0">
</dx:GridViewCommandColumn>
<dx:GridViewDataTextColumn FieldName="UniqueID" ReadOnly="True" ShowInCustomizationForm="True"
Visible="False" VisibleIndex="1">
</dx:GridViewDataTextColumn>
<dx:GridViewDataTextColumn FieldName="ResourceID" ShowInCustomizationForm="True" Visible="False"
VisibleIndex="2" ReadOnly="True">
<EditFormSettings Visible="False" />
</dx:GridViewDataTextColumn>
<dx:GridViewDataTextColumn FieldName="ResourceName" ShowInCustomizationForm="True" VisibleIndex="3">
</dx:GridViewDataTextColumn>
<dx:GridViewDataTextColumn FieldName="Color" ShowInCustomizationForm="True" Visible="False" VisibleIndex="4">
<EditFormSettings Visible="False" />
</dx:GridViewDataTextColumn>
<dx:GridViewDataTextColumn FieldName="CustomField1" ShowInCustomizationForm="True" Visible="False" VisibleIndex="5">
<EditFormSettings Visible="False" />
</dx:GridViewDataTextColumn>
<dx:GridViewDataTextColumn FieldName="category_ClientID" ShowInCustomizationForm="True"
VisibleIndex="6" Visible="False">
</dx:GridViewDataTextColumn>
<dx:GridViewDataTextColumn FieldName="IsAvailable" PropertiesTextEdit-NullDisplayText="true"
ShowInCustomizationForm="True" VisibleIndex="7">
**<EditItemTemplate>
<dx:ASPxCheckBox ID="chkIsAvailableEdit" runat="server" Checked="true" Style="margin-left: 18px"
CheckState="Checked" Cursor="pointer" EnableDefaultAppearance="False"
EnableTheming="False">
<CheckedImage Height="26px" Url="~/images/switchon.png" Width="70px">
</CheckedImage>
<UncheckedImage Height="26px" Url="~/images/switchoff.png" Width="70px">
</UncheckedImage>
<GrayedImage Url="~/images/switchoff.png">
</GrayedImage>
</dx:ASPxCheckBox>
</EditItemTemplate>**
</dx:GridViewDataTextColumn>
</Columns>
</dx:ASPxGridView>
<asp:SqlDataSource ID="SqlDataSource3" runat="server" ConnectionString="<%$ ConnectionStrings:NCompassWebsiteConnectionString %>"
DeleteCommand="DELETE FROM [SchResources] WHERE [UniqueID] = #UniqueID"
InsertCommand="INSERT INTO [SchResources] ([ResourceID], [ResourceName], [Color], [CustomField1], [category_ClientID],
[IsAvailable]) VALUES (#ResourceID, #ResourceName, #Color, #CustomField1, #category_ClientID, #IsAvailable)"
SelectCommand="SELECT * FROM [SchResources] WHERE ([category_ClientID] = #category_ClientID)"
UpdateCommand="UPDATE [SchResources] SET [ResourceID] = #ResourceID, [ResourceName] = #ResourceName, [Color] = #Color,
[CustomField1] = #CustomField1, [category_ClientID] = #category_ClientID, [IsAvailable] = #IsAvailable WHERE [UniqueID] = #UniqueID">
<DeleteParameters>
<asp:Parameter Name="UniqueID" Type="Int32" />
</DeleteParameters>
<InsertParameters>
<asp:Parameter Name="ResourceID" Type="Int32" />
<asp:Parameter Name="ResourceName" Type="String" />
<asp:Parameter Name="Color" Type="Int32" />
<asp:Parameter Name="CustomField1" Type="String" />
<asp:SessionParameter Name="category_ClientID" SessionField="ClientID" Type="String" />
<asp:Parameter Name="IsAvailable" Type="String" />
</InsertParameters>
<SelectParameters>
<asp:SessionParameter Name="category_ClientID" SessionField="ClientID" Type="String" />
<%--<asp:Parameter DefaultValue="62" Name="category_ClientID" Type="String" />--%>
</SelectParameters>
<UpdateParameters>
<asp:Parameter Name="ResourceID" Type="Int32" />
<asp:Parameter Name="ResourceName" Type="String" />
<asp:Parameter Name="Color" Type="Int32" />
<asp:Parameter Name="CustomField1" Type="String" />
<asp:SessionParameter Name="category_ClientID" SessionField="ClientID" Type="String" />
<asp:Parameter Name="IsAvailable" Type="String" />
<asp:Parameter Name="UniqueID" Type="Int32" />
</UpdateParameters>
</asp:SqlDataSource>
Simply use the built-in GridViewDataCheckColumn (specially intended for displaying/editing boolean values) instead of the GridViewDataTextColumn (the default) one:
<%--
<dx:GridViewDataTextColumn FieldName="IsAvailable">
</dx:GridViewDataTextColumn
--%>
<dx:GridViewDataCheckColumn FieldName="IsAvailable">
</dx:GridViewDataCheckColumn
Check this demo.
Or, use the standard two-way binding expression (the Bind method) to bind ASPxCheckBox with the necessary row's FieldName:
<dx:GridViewDataTextColumn FieldName="IsAvailable">
<EditItemTemplate>
<dx:ASPxCheckBox ID="chkIsAvailableEdit" ... Value='<%#Bind("IsAvailable")'>
</dx:ASPxCheckBox>
</EditItemTemplate>
</dx:GridViewDataTextColumn>
Check this demo.

System.Data.DataRowView' does not contain a property with the name 'State'

<asp:GridView ID="dgvCustomers" runat="server" AutoGenerateColumns="False" HorizontalAlign="Center" DataKeyNames="ID" DataSourceID="dsCustomerTickets" BackColor="White" BorderColor="#DEDFDE" BorderStyle="None" BorderWidth="1px" CellPadding="4" ForeColor="Black" GridLines="Vertical" OnRowUpdated="dgvCustomers_RowUpdated">
<AlternatingRowStyle BackColor="White" />
<Columns>
<asp:CommandField EditImageUrl="~/svg/edit.png" UpdateImageUrl="~/svg/save.png" CancelImageUrl="~/svg/cancel.png" ButtonType="Image" ShowEditButton="True" />
<asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False" ReadOnly="True" SortExpression="ID" />
<asp:BoundField DataField="Title" HeaderText="Title" SortExpression="Title" />
<asp:BoundField DataField="Description" HeaderText="Description" SortExpression="Description" />
<asp:BoundField DataField="System" HeaderText="System" SortExpression="System" />
<asp:BoundField DataField="LoggedDate" HeaderText="LoggedDate" SortExpression="LoggedDate" />
<asp:BoundField DataField="ClosedDate" HeaderText="ClosedDate" SortExpression="ClosedDate" />
<asp:BoundField DataField="Resolution" HeaderText="Resolution" SortExpression="Resolution" />
<%--<asp:BoundField DataField="HistoryID" HeaderText="HistoryID" SortExpression="HistoryID" />--%>
<%--<asp:BoundField DataField="Priority" HeaderText="Priority" SortExpression="Priority" />--%>
<asp:BoundField DataField="LoggedBy" HeaderText="LoggedBy" SortExpression="LoggedBy" />
<asp:TemplateField HeaderText="State" SortExpression="State2">
<EditItemTemplate>
<asp:DropDownList ID="ddlstate" runat="server" DataSourceID="SqlDataSource2" DataTextField="State" DataValueField="ID" SelectedValue='<%# Bind("State") %>' AppendDataBoundItems="true">
<asp:ListItem Text="Select a State" Value="" />
</asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("State2") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Priority" SortExpression="State3">
<EditItemTemplate>
<asp:DropDownList ID="ddlpriority" runat="server" DataSourceID="SqlDataSource3" DataTextField="Priority" DataValueField="ID" SelectedValue='<%# Bind("Priority") %>' AppendDataBoundItems="true">
<asp:ListItem Text="Select Priority" Value="" />
</asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Bind("State3") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<FooterStyle BackColor="#CCCC99" />
<HeaderStyle BackColor="#6B696B" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#F7F7DE" ForeColor="Black" HorizontalAlign="Right" />
<RowStyle BackColor="#F7F7DE" />
<SelectedRowStyle BackColor="#0099ff" Font-Bold="True" ForeColor="White" />
<SortedAscendingCellStyle BackColor="#FBFBF2" />
<SortedAscendingHeaderStyle BackColor="#848384" />
<SortedDescendingCellStyle BackColor="#EAEAD3" />
<SortedDescendingHeaderStyle BackColor="#575357" />
</asp:GridView>
<asp:SqlDataSource ID="dsCustomerTickets" runat="server" ConnectionString="<%$ ConnectionStrings:TicketsSupportConnectionString %>" DeleteCommand="DELETE FROM [Tickets] WHERE [ID] = #ID" InsertCommand="INSERT INTO [Tickets] ([Title], [Description], [System], [LoggedDate], [ClosedDate], [Resolution], [Priority], [HistoryID], [LoggedBy], [State]) VALUES (#Title, #Description, #System, #LoggedDate, #ClosedDate, #Resolution, #Priority, #HistoryID, #LoggedBy, #State)" SelectCommand="SELECT T.ID, T.Title, T.Description, T.System, T.Attachments, T.LoggedDate, T.ClosedDate, T.Resolution, T.Priority, T.LoggedBy, S.State AS State2, p.Priority AS State3 FROM Tickets AS T INNER JOIN State AS S ON T.State = S.ID INNER JOIN Priority AS p ON T.Priority = p.ID WHERE (T.LoggedBy = #LoggedBy)" UpdateCommand="UPDATE Tickets SET Description = #Description, System = #System, ClosedDate = #ClosedDate, Resolution = #Resolution, Priority = #Priority, HistoryID = #HistoryID, State = #State WHERE (ID = #ID)">
<DeleteParameters>
<asp:Parameter Name="ID" Type="Int32" />
</DeleteParameters>
<InsertParameters>
<asp:Parameter Name="Title" Type="String" />
<asp:Parameter Name="Description" Type="String" />
<asp:Parameter Name="System" Type="String" />
<asp:Parameter Name="LoggedDate" Type="DateTime" />
<asp:Parameter Name="ClosedDate" Type="DateTime" />
<asp:Parameter Name="Resolution" Type="String" />
<asp:Parameter Name="Priority" Type="Int32" />
<asp:Parameter Name="HistoryID" Type="Int32" />
<asp:Parameter Name="LoggedBy" Type="String" />
<asp:Parameter Name="State" Type="Int32" />
</InsertParameters>
<SelectParameters>
<asp:QueryStringParameter Name="LoggedBy" QueryStringField="u" />
</SelectParameters>
<UpdateParameters>
<asp:Parameter Name="Description" Type="String" />
<asp:Parameter Name="System" Type="String" />
<asp:Parameter Name="ClosedDate" Type="DateTime" />
<asp:Parameter Name="Resolution" Type="String" />
<asp:Parameter Name="Priority" Type="Int32" />
<asp:Parameter Name="HistoryID" Type="Int32" />
<asp:Parameter Name="State" Type="Int32" />
<asp:Parameter Name="ID" Type="Int32" />
</UpdateParameters>
</asp:SqlDataSource>
<asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:TicketsSupportConnectionString %>" SelectCommand="SELECT [ID],[State] FROM [dbo].[State]"></asp:SqlDataSource>
With the above code I get the error constantly.
In SQL if I run the SqlDataSource2 query I get results (ID and State).
I tried Changing my queries and editing my dragged SqlDataSource2 in the query builder.
As soon as I click on the commandfield "EditImageUrl" I get the above error.
Maybe I am looking at my code to long to notice any issues.
I have googled it with no luck looking at stuff like:
I have looked at Here
And the same here, I have bind instead of Eval in the dropdown list.
I also tried changing my sqldatasource to:
Select * from State
Select ID, State from State
Select ID, State from dbo.State
Any help will be appreciated.
Edit and Update
In EditTemplate you fill in aspDropDown from SqlDataSource2 with correct DataTextField="State" DataValueField="ID". But SelectedValue belongs to <asp:SqlDataSource ID="dsCustomerTickets". So you need T.State in SelectCommand to make binding SelectedValue='<%# Bind("State") %>' correct. Also there is no need in Bind in ItemTemplate. Eval("State2") is enough.
And 1st SqlDataSource should be
<asp:SqlDataSource ID="dsCustomerTickets" runat="server"
ConnectionString="<%$ ConnectionStrings:TicketsSupportConnectionString %>"
DeleteCommand="DELETE FROM [Tickets] WHERE [ID] = #ID"
InsertCommand="INSERT INTO [Tickets] (/*removed for shortness*/ [State]) VALUES ( #State2)"
SelectCommand="SELECT /*your list*/ T.State, S.State AS State2, p.Priority AS State3 FROM Tickets AS T INNER JOIN State AS S ON T.State = S.ID INNER JOIN Priority AS p ON T.Priority = p.ID WHERE (T.LoggedBy = #LoggedBy)"
UpdateCommand="UPDATE Tickets SET /*removed for shortness*/ State = #State2 WHERE (ID = #ID)">
<DeleteParameters>
<asp:Parameter Name="ID" Type="Int32" />
</DeleteParameters>
<InsertParameters>
<%--your parameters removed for shortness--%>
<asp:Parameter Name="State" Type="Int32" />
</InsertParameters>
<SelectParameters>
<asp:QueryStringParameter Name="LoggedBy" QueryStringField="u" />
</SelectParameters>
<UpdateParameters>
<%--your parameters removed for shortness--%>
<asp:Parameter Name="State" Type="Int32" />
<asp:Parameter Name="ID" Type="Int32" />
</UpdateParameters>
</asp:SqlDataSource>

edit in detailsview with dropdownlist

I am fairly new at ASP.NET c#. I would like to edit a detailsview with a dropdown list. I have followed the instructions on this link -- This link-- and it was exactly what I orrigionally thought of. This is flawed however, because although I can see the items on my dropdown list, it does not actually update the database. I am at a loss. I have been trying to find an answer for a couple of days now and am unsure of what I need to do. Is there something I need to do in the backend? I will attach my code at the end as well. Currently I have nothing going on in the backend.
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:it_supportConnectionString %>" DeleteCommand="DELETE FROM [issues] WHERE [issue_id] = #issue_id" InsertCommand="INSERT INTO [issues] ([requestor], [email], [urgency], [issue_type], [details], [priority], [issue_manager], [status], [date_reported]) VALUES (#requestor, #email, #urgency, #issue_type, #details, #priority, #issue_manager, #status, #date_reported)" SelectCommand="SELECT issues.issue_id, issues.requestor, issues.email, issues.phone, issues.urgency, issues.issue_type_id,Issue_Type.[Issue_Type_ID], Issue_Type.[Issue_Type], issues.details, issues.priority, issues.issue_manager, issues.status, issues.date_reported, issues.notes FROM issues LEFT OUTER JOIN Issue_Type ON Issue_Type.Issue_Type_Id = issues.issue_type_id WHERE (issues.issue_id = #issue_id)" UpdateCommand="UPDATE issues SET requestor = #requestor, email = #email, urgency = #urgency, details = #details, priority = #priority, issue_manager = #issue_manager, status = #status, date_reported = #date_reported WHERE (issue_id = #issue_id)">
<DeleteParameters>
<asp:Parameter Name="issue_id" Type="Int32" />
</DeleteParameters>
<InsertParameters>
<asp:Parameter Name="requestor" Type="String" />
<asp:Parameter Name="email" Type="String" />
<asp:Parameter Name="urgency" Type="String" />
<asp:Parameter Name="issue_type" Type="String" />
<asp:Parameter Name="details" Type="String" />
<asp:Parameter Name="priority" Type="Int32" />
<asp:Parameter Name="issue_manager" Type="String" />
<asp:Parameter Name="status" Type="String" />
<asp:Parameter Name="date_reported" Type="DateTime" />
</InsertParameters>
<SelectParameters>
<asp:QueryStringParameter Name="issue_id" QueryStringField="id" Type="Int32" />
</SelectParameters>
<UpdateParameters>
<asp:Parameter Name="requestor" Type="String" />
<asp:Parameter Name="email" Type="String" />
<asp:Parameter Name="urgency" Type="String" />
<asp:Parameter Name="details" Type="String" />
<asp:Parameter Name="priority" Type="Int32" />
<asp:Parameter Name="issue_manager" Type="String" />
<asp:Parameter Name="status" Type="String" />
<asp:Parameter Name="date_reported" Type="DateTime" />
<asp:Parameter Name="issue_id" Type="Int32" />
</UpdateParameters>
</asp:SqlDataSource>
<asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:it_supportConnectionString %>" SelectCommand="SELECT Issue_Type.Issue_Type_Id, Issue_Type.Issue_Type, issues.issue_type_id AS Expr1 FROM Issue_Type LEFT OUTER JOIN issues ON Issue_Type.Issue_Type_Id = issues.issue_type_id"></asp:SqlDataSource>
<asp:DetailsView ID="DetailsView1" runat="server" AutoGenerateRows="False" BackColor="#DEBA84" BorderColor="#DEBA84" BorderStyle="None" BorderWidth="1px" CellPadding="3" CellSpacing="2" DataSourceID="SqlDataSource1" Height="50px" Width="125px">
<EditRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="White" />
<Fields>
<asp:BoundField DataField="issue_id" HeaderText="issue_id" InsertVisible="False" ReadOnly="True" SortExpression="issue_id" />
<asp:BoundField DataField="requestor" HeaderText="requestor" SortExpression="requestor" />
<asp:BoundField DataField="email" HeaderText="email" SortExpression="email" />
<asp:BoundField DataField="phone" HeaderText="phone" SortExpression="phone" />
<asp:BoundField DataField="urgency" HeaderText="urgency" SortExpression="urgency" />
<asp:TemplateField HeaderText="issue_type_id" SortExpression="issue_type_id">
<EditItemTemplate>
<asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="SqlDataSource2" DataTextField="Issue_Type_Id" DataValueField="Expr1" SelectedValue='<%# Bind("issue_type_id") %>'>
</asp:DropDownList>
</EditItemTemplate>
<InsertItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("issue_type_id") %>'></asp:TextBox>
</InsertItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("issue_type_id") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Issue_Type" HeaderText="Issue_Type" SortExpression="Issue_Type" />
<asp:BoundField DataField="details" HeaderText="details" SortExpression="details" />
<asp:BoundField DataField="priority" HeaderText="priority" SortExpression="priority" />
<asp:BoundField DataField="issue_manager" HeaderText="issue_manager" SortExpression="issue_manager" />
<asp:BoundField DataField="status" HeaderText="status" SortExpression="status" />
<asp:BoundField DataField="date_reported" HeaderText="date_reported" SortExpression="date_reported" />
<asp:BoundField DataField="notes" HeaderText="notes" SortExpression="notes" />
<asp:CommandField ShowDeleteButton="True" ShowEditButton="True" />
</Fields>
<FooterStyle BackColor="#F7DFB5" ForeColor="#8C4510" />
<HeaderStyle BackColor="#A55129" Font-Bold="True" ForeColor="White" />
<PagerStyle ForeColor="#8C4510" HorizontalAlign="Center" />
<RowStyle BackColor="#FFF7E7" ForeColor="#8C4510" />
</asp:DetailsView>

Casting object to CheckBox in bulk updates

I was following this so far everything is fine with a textbox but when try to modify it to checkbox it gives an error: Unable to cast object of type 'System.Web.UI.WebControls.TextBox' to type 'System.Web.UI.WebControls.CheckBox'.
Its working when I use TextBox but how can I make all the CheckBox editable in bulk updates?
Here's the sample code behind
private bool tableCopied = false;
private DataTable originalDataTable;
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
if (!tableCopied)
{
originalDataTable = ((DataRowView)e.Row.DataItem).Row.Table.Copy();
ViewState["originalValueTable"] = originalDataTable;
tableCopied = true;
}
}
protected void UpdateButton_Click(object sender, EventArgs e)
{
originalDataTable = (DataTable)ViewState["originalValueTable"];
foreach (GridViewRow r in GridView1.Rows)
if (IsRowModified(r))
{
GridView1.UpdateRow(r.RowIndex, false);
}
tableCopied = false;
GridView1.DataBind();
}
protected bool IsRowModified(GridViewRow r)
{
int currentID;
string currentreservedate;
string currentisapproved;
currentID = Convert.ToInt32(GridView1.DataKeys[0].Value);
currentreservedate = ((TextBox)r.FindControl("reservedateTextBox")).Text;
currentisapproved = ((CheckBox)r.FindControl("isapprovedCheckBox")).Text;
DataRow row = originalDataTable.Select(String.Format("reservationid = {0}", currentID))[0];
if (!currentreservedate.Equals(row["reservedate"].ToString()))
if (!currentisapproved.Equals(row["isapproved"].ToString()))
{
return true;
}
return false;
}
}
}
Here's the aspx markup
Pending Reservation<br />
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:LibrarySystemConnectionString %>"
SelectCommand="SELECT dbo.BookReservation.reservationid, dbo.BookReservation.bookid, dbo.BookReservation.EmployeeID, dbo.BookReservation.reservedate, dbo.BookReservation.isapproved, dbo.BookReservation.reschedule, dbo.BookReservation.isdeleted, dbo.TblBooks.booktitle FROM dbo.BookReservation INNER JOIN dbo.TblBooks ON dbo.BookReservation.bookid = dbo.TblBooks.bookid"
DeleteCommand="DELETE FROM [BookReservation] WHERE [reservationid] = #reservationid"
InsertCommand="INSERT INTO [BookReservation] ([bookid], [EmployeeID], [reservedate], [isapproved], [reschedule], [isdeleted]) VALUES (#bookid, #EmployeeID, #reservedate, #isapproved, #reschedule, #isdeleted)"
UpdateCommand="UPDATE [BookReservation] SET [bookid] = #bookid, [EmployeeID] = #EmployeeID, [reservedate] = #reservedate, [isapproved] = #isapproved, [reschedule] = #reschedule, [isdeleted] = #isdeleted WHERE [reservationid] = #reservationid">
<DeleteParameters>
<asp:Parameter Name="reservationid" Type="Int32" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="bookid" Type="Int64" />
<asp:Parameter Name="EmployeeID" Type="String" />
<asp:Parameter Name="reservedate" Type="DateTime" />
<asp:Parameter Name="isapproved" Type="Boolean" />
<asp:Parameter Name="reschedule" Type="Boolean" />
<asp:Parameter Name="isdeleted" Type="Boolean" />
<asp:Parameter Name="reservationid" Type="Int32" />
</UpdateParameters>
<InsertParameters>
<asp:Parameter Name="bookid" Type="Int64" />
<asp:Parameter Name="EmployeeID" Type="String" />
<asp:Parameter Name="reservedate" Type="DateTime" />
<asp:Parameter Name="isapproved" Type="Boolean" />
<asp:Parameter Name="reschedule" Type="Boolean" />
<asp:Parameter Name="isdeleted" Type="Boolean" />
</InsertParameters>
</asp:SqlDataSource>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" AllowPaging="true" AllowSorting="true"
DataKeyNames="reservationid, bookid, EmployeeID, reservedate " DataSourceID="SqlDataSource1" OnRowDataBound="GridView1_RowDataBound" >
<Columns>
<asp:BoundField DataField="reservationid" HeaderText="reservationid"
InsertVisible="False" ReadOnly="True"
SortExpression="reservationid" Visible="False" />
<asp:BoundField DataField="bookid" HeaderText="bookid"
SortExpression="bookid" Visible="False" />
<asp:BoundField DataField="booktitle" HeaderText="Title"
SortExpression="booktitle" />
<asp:BoundField DataField="EmployeeID" HeaderText="Reserved by"
SortExpression="EmployeeID" />
<%--<asp:BoundField DataField="reservedate" HeaderText="Date reserved"
SortExpression="reservedate" />--%>
<asp:TemplateField HeaderText="Reserve Date"
SortExpression="reservedate">
<EditItemTemplate>
<asp:TextBox ID="reservedateTextBox" runat="server" Text='<%# Bind("reservedate") %>'>
</asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:TextBox ID="reservedateTextBox" runat="server" Text='<%# Bind("reservedate") %>'>
</asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<%--<asp:CheckBoxField DataField="isapproved" HeaderText="Approved"
SortExpression="isapproved" />--%>
<asp:TemplateField HeaderText="Apprvoed"
SortExpression="isapproved">
<EditItemTemplate>
<asp:TextBox ID="isapprovedCheckBox" runat="server" Text='<%# Bind("isapproved") %>'>
</asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:TextBox ID="isapprovedCheckBox" runat="server" Text='<%# Bind("isapproved") %>'>
</asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:CheckBoxField DataField="reschedule" HeaderText="Reschedule"
SortExpression="reschedule" />
<asp:CheckBoxField DataField="isdeleted" HeaderText="Deleted"
SortExpression="isdeleted" />
</Columns>
</asp:GridView>
<br />
<br />
<asp:Button ID="UpdateButton" runat="server" Text="Update" OnClick="UpdateButton_Click" />
<br />
Help would be much appreciated! Thanks in advance!
I think that to answer this question, the contents of the aspx file are required, but I'll try to help. More than likely the element in your form, isapprovedCheckBox, is still set to the the tag asp:Text. As a result the system can't convert the textbox to a checkbox.
Could you include your aspx content as well?

Categories

Resources