1

データの DropDownList と Add ButtonField で定義された次の DetailsView があります。

<asp:DetailsView ID="dvNewEntry" runat="server" Height="50px" Width="800px" 
      AutoGenerateRows="False" CssClass="gv_footer" BorderColor="Black" 
      BorderStyle="Solid" BorderWidth="2px" CellPadding="5" CellSpacing="8">
<FieldHeaderStyle CssClass="th_right"  />
<Fields>
  <asp:TemplateField HeaderText="Account Name">
     <ItemTemplate> 
     <asp:Label ID="lblNewAcct" runat="server" Text='<%# Eval("ACCT_LIST") %         
     >'></asp:Label> 
     </ItemTemplate> 
     <InsertItemTemplate>
        <asp:DropDownList ID="ddAcctList" runat="server" DataSourceID="LUWAcctList"    
        DataTextField="ACCT_LIST" DataValueField="ACCT_LIST"
        SelectedValue='<%# Bind("ACCT_LIST") %>' Font-Size="Small" Width="600">
        </asp:DropDownList>
     </InsertItemTemplate>
  </asp:TemplateField>
<asp:ButtonField ButtonType="Button" Text="Save" CommandName="Add"/>
</Fields>
</asp:DetailsView>

コードビハインドには、次の ItemCommand サブがあります。

Protected Sub dvNewEntry_ItemCommand(ByVal sender As Object, ByVal e As DetailsViewCommandEventArgs) Handles dvNewEntry.ItemCommand

    If e.CommandName = "Add" Then
        Dim newA As String
        newA = Trim(CType(dvNewEntry.FindControl("ddAcctList"), DropDownList).Text)
        etc. etc.

ユーザーがドロップダウン リストから値を選択すると、すべてが正常に機能します。しかし、選択せずに [追加] ボタンをクリックすると、"If e.CommandName = Add" 行に到達すると次のエラーが表示されます。

インデックスが配列の範囲外だった

この例外を処理するにはどうすればよいですか? ありがとう

4

1 に答える 1

0

If (e.[someproperty] IsNot Null) Then --> あなたのコードは問題を解決しました。ありがとうタナー

于 2014-01-17T15:13:39.430 に答える