0

必要なシステム:ユーザーがマスター グリッドのドロップダウン リストで選択内容を変更すると、詳細グリッドの現在の行の下にある行が表示され、テレリックでマスター詳細グリッドを作成しようとしています。彼/彼女の選択が再び変化すると、それは消えます。

背景情報:このシステムは、エンド ユーザー (ガソリン スタンドの監査人) がガソリン スタンドを検査できるように設計されており、違反を発見した場合、取るべき行動を即座に特定できます。ユーザーが違反を見つけた場合にドロップダウン リストを変更するドロップダウン メニュー付きのチェックリストが表示され、違反のために実行する必要がある手順が示されます。

問題:ドロップダウン リストの選択に応じて、マスター グリッドで selectedindexchanged を使用してイベントを作成しようとしています。ドロップダウン リストの選択が「違反」の場合、行は詳細グリッドに表示され、それ以外の場合は非表示になります。マスター詳細行を相互にマップするために使用している値は、「SRS」と呼ばれます。

変数「rowIndex」で行インデックスを取得しようとすると、型キャストを実行している型から別の型への型変更に関するエラーが見つかりました。私は結果なしで問題を解決するために厳密に試みました。

誰かが私の問題を解決するためのコードを提供できれば、とても感謝しています

注: 問題のあるコード行を強調表示します

vb コード (問題のあるコード):

 Protected Sub SqlDataSource_Selecting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.SqlDataSourceSelectingEventArgs) Handles SqlDataSource.Selecting

End Sub

Protected Sub DropDownList1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs)

**PROBLEMATIC LINE** ------------------------>     Dim rowIndex As Integer = CType(CType(sender, RadDropDownList).Parent.Parent, GridViewRow).RowIndex



      Dim SRSText As String = RadGrid1.MasterTableView.Items(rowIndex).Cells(3).Text


        If sender.SelectedValue = "in violation" Then

            SqlDataSource1.SelectParameters.Add(":SRSText", SRSText)

            RadGrid1.MasterTableView.DetailTables(0).DataSource = SqlDataSource1
            RadGrid1.MasterTableView.DetailTables(0).DataBind()

        Else
        End If

    End Sub
End Class

詳細については、付属の ASPX コードを参照してください。

<%@ Page Title="" Language="VB" MasterPageFile="~/MasterPage.master" AutoEventWireup="false"
    CodeFile="Default.aspx.vb" Inherits="_Default" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
    <telerik:RadScriptManager ID="RadScriptManager1" runat="server">
        <Scripts>
            <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.Core.js">
            </asp:ScriptReference>
            <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQuery.js">
            </asp:ScriptReference>
            <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQueryInclude.js">
            </asp:ScriptReference>
        </Scripts>
    </telerik:RadScriptManager>
    <telerik:RadStyleSheetManager ID="RadStyleSheetManager1" runat="server">
    </telerik:RadStyleSheetManager>
    <telerik:RadTextBox ID="RadTextBox1" runat="server" AutoPostBack="True" LabelWidth="64px"
        Resize="None" Text="please enter the PFS number" Width="160px">
    </telerik:RadTextBox>
    <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
    </telerik:RadAjaxManager>
    <asp:SqlDataSource ID="SqlDataSource" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
        ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" SelectCommand="SELECT * FROM &quot;CHECKLIST&quot;">
    </asp:SqlDataSource>
    <p>
        &nbsp;</p>
    <telerik:RadGrid ID="RadGrid1" runat="server" CellSpacing="0" DataSourceID="SqlDataSource"
        GridLines="None" AllowMultiRowSelection="True" AutoGenerateColumns="False">
        <ExportSettings>
            <Pdf>
                <PageHeader>
                    <LeftCell Text=""></LeftCell>
                    <MiddleCell Text=""></MiddleCell>
                    <RightCell Text=""></RightCell>
                </PageHeader>
                <PageFooter>
                    <LeftCell Text=""></LeftCell>
                    <MiddleCell Text=""></MiddleCell>
                    <RightCell Text=""></RightCell>
                </PageFooter>
            </Pdf>
        </ExportSettings>
        <ClientSettings EnablePostBackOnRowClick="True" EnableRowHoverStyle="True">
            <Selecting AllowRowSelect="True" />
        </ClientSettings>
        <MasterTableView DataKeyNames="INSPECTIONNO" DataSourceID="SqlDataSource">
            <CommandItemSettings ExportToPdfText="Export to PDF"></CommandItemSettings>
            <RowIndicatorColumn Visible="True" FilterControlAltText="Filter RowIndicator column">
                <HeaderStyle Width="20px"></HeaderStyle>
            </RowIndicatorColumn>
            <ExpandCollapseColumn Visible="True" FilterControlAltText="Filter ExpandColumn column">
                <HeaderStyle Width="20px"></HeaderStyle>
            </ExpandCollapseColumn>
             <DetailTables>

                                        <telerik:GridTableView AutoGenerateColumns="false"  DataSourceID="SqlDataSource1"

                                            Width="100%">
<CommandItemSettings ExportToPdfText="Export to PDF"></CommandItemSettings>
<ParentTableRelation>

                                                <telerik:GridRelationFields DetailKeyField="SRS" MasterKeyField="SRS"></telerik:GridRelationFields>

                                            </ParentTableRelation>

<RowIndicatorColumn Visible="True" FilterControlAltText="Filter RowIndicator column"></RowIndicatorColumn>

<ExpandCollapseColumn Visible="True" FilterControlAltText="Filter ExpandColumn column"></ExpandCollapseColumn>

<EditFormSettings>
<EditColumn FilterControlAltText="Filter EditCommandColumn column"></EditColumn>
</EditFormSettings>

<BatchEditingSettings EditType="Cell"></BatchEditingSettings>

<PagerStyle PageSizeControlType="RadComboBox"></PagerStyle>
                                        </telerik:GridTableView> </DetailTables>
            <Columns>
                <telerik:GridBoundColumn DataField="PFSNO" DataType="System.Decimal" FilterControlAltText="Filter PFSNO column"
                    HeaderText="PFSNO" SortExpression="PFSNO" UniqueName="PFSNO">
                </telerik:GridBoundColumn>
                <telerik:GridBoundColumn DataField="INSPECTIONNO" DataType="System.Decimal" FilterControlAltText="Filter INSPECTIONNO column"
                    HeaderText="INSPECTIONNO" ReadOnly="True" SortExpression="INSPECTIONNO" UniqueName="INSPECTIONNO">
                </telerik:GridBoundColumn>
                <telerik:GridBoundColumn DataField="INPECTIONDATENTIME" FilterControlAltText="Filter INPECTIONDATENTIME column"
                    HeaderText="INPECTIONDATENTIME" SortExpression="INPECTIONDATENTIME" UniqueName="INPECTIONDATENTIME">
                </telerik:GridBoundColumn>
                <telerik:GridBoundColumn DataField="SRS" DataType="System.Decimal" FilterControlAltText="Filter SRS column"
                    HeaderText="SRS" SortExpression="SRS" UniqueName="SRS">
                </telerik:GridBoundColumn>
                <telerik:GridBoundColumn DataField="VIOLATIONTYPE" FilterControlAltText="Filter VIOLATIONTYPE column"
                    HeaderText="VIOLATIONTYPE" SortExpression="VIOLATIONTYPE" UniqueName="VIOLATIONTYPE">
                </telerik:GridBoundColumn>
                <telerik:GridBoundColumn DataField="VIOLATIONDESCRIPTION" FilterControlAltText="Filter VIOLATIONDESCRIPTION column"
                    HeaderText="VIOLATIONDESCRIPTION" SortExpression="VIOLATIONDESCRIPTION" UniqueName="VIOLATIONDESCRIPTION">
                </telerik:GridBoundColumn>
                <telerik:GridBoundColumn DataField="REMARKS" FilterControlAltText="Filter REMARKS column"
                    HeaderText="REMARKS" SortExpression="REMARKS" UniqueName="REMARKS">
                </telerik:GridBoundColumn>
                <telerik:GridBoundColumn DataField="ITEM" FilterControlAltText="Filter ITEM column"
                    HeaderText="ITEM" SortExpression="ITEM" UniqueName="ITEM">
                </telerik:GridBoundColumn>
                <telerik:GridAttachmentColumn FileName="attachment" 
                    FilterControlAltText="Filter column column" HeaderText="audit status-" 
                    UniqueName="column">
                </telerik:GridAttachmentColumn>
                <telerik:GridTemplateColumn>
                    <ItemTemplate>
                        <telerik:RadDropDownList ID="violDrop" runat="server" DataSourceID="dd2_SqlDataSource1" DataTextField="LISTITEM" DataValueField="LISTITEM" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged"  AutoPostBack="true"/>
                    </ItemTemplate>
                </telerik:GridTemplateColumn>
            </Columns>
            <EditFormSettings>
                <EditColumn FilterControlAltText="Filter EditCommandColumn column">
                </EditColumn>
            </EditFormSettings>
            <BatchEditingSettings EditType="Cell"></BatchEditingSettings>
            <PagerStyle PageSizeControlType="RadComboBox"></PagerStyle>
        </MasterTableView>
        <PagerStyle PageSizeControlType="RadComboBox"></PagerStyle>
        <FilterMenu EnableImageSprites="False">
        </FilterMenu>
    </telerik:RadGrid>
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
        ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" SelectCommand="SELECT * FROM &quot;MEMO&quot; WHERE (&quot;SRS&quot; = :SRS)">
        <SelectParameters>
            <asp:ControlParameter ControlID="RadGrid1" Name="SRS" PropertyName="SelectedValue"
                Type="String" />
        </SelectParameters>
    </asp:SqlDataSource>
    <asp:SqlDataSource ID="dd2_SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
        ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" SelectCommand="SELECT &quot;LISTITEM&quot; FROM &quot;DROPDOWNLIST&quot;">
    </asp:SqlDataSource>
</asp:Content>
4

2 に答える 2

0

まずは返信ありがとうございます

残念ながら、提供されたコード スニペットは私のケースでは機能しませんでした。「オブジェクト参照がオブジェクトのインスタンスに設定されていませんでした」というエラー メッセージが表示されました。

注:インデックス変数の名前を変更するコードをコピーして貼り付けました

于 2013-10-06T04:58:42.933 に答える