2016-06-29 21 views
0

私はこのフォーラムでは新しいですが、私は何年もの回答を探しています。今、私はあなたの助けが問題を解決するのが好きです。私は私のグリッドに自分のドロップダウンリストを作るために、このlinkに従い、この行まで正常に動作しています:ここASP:NET - GridVIEW - DropDownList selectedvalue

ddlCities.Items.FindByValue(country).Selected = True 

、私が持っているエラー:

Object reference not set to an instance of an object.

が、私のコードは、影響を受けたフィールドに右であります:

これは背後にあるコードでは、関連するコードです:

Protected Sub RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs) 
     If e.Row.RowType = DataControlRowType.DataRow AndAlso grdLinea.EditIndex = e.Row.RowIndex; 

     Dim ddlCities As DropDownList = DirectCast(e.Row.FindControl("ddlFacturarA"), DropDownList) 


     ' Create the command with the sproc name and add the parameter required' 
     ddlCities.DataSource = GetData("select UPPER(DSCA_ZONA)as Zona from tb_personal where dsca_Zona <> 'NULL'group by dsca_zona order by dsca_zona") 
     ddlCities.DataTextField = "Zona" 
     ddlCities.DataValueField = "Zona" 
     ddlCities.DataBind() 

     'Add Default Item in the DropDownList 
     'ddlCountries.Items.Insert(0, New ListItem("Please select")) 

     Dim country As String = Trim(CType(e.Row.FindControl("lblFacturarA"), Label).Text) 
     ddlCities.Items.FindByValue(country).Selected = True 

    End If 
End Sub 

と、これはAFFですデザインモードでectedコード:

<EditItemTemplate > 
    <asp:label ID="lblFacturarA" Value ='<%# Eval("facturar_a")%>' Visible ="false" runat="server" /> 

       <asp:DropDownList 
        ID="ddlFacturarA" 
        CssClass="txt" 
        runat="server" 

        AutoPostBack="True" ValidationGroup="rfNewLineEmpty"> 
       </asp:DropDownList> 



       <asp:RequiredFieldValidator 
        ID="rfNewLineFacturarA" 
        runat="server" 
        ErrorMessage="Obligatorio" 
        ValidationGroup="rfNewLine" 
        SetFocusOnError="True" 
        ControlToValidate="ddlFacturarA"> 
       </asp:RequiredFieldValidator> 
</EditItemTemplate> 

は、私はASP.NETに新しいです知っていて、多分私は道で何かを失うのですが、私は2日間、このコードラウンドされていると光が表示されません。

このエラーの理由を教えていただけますか?

この問題を解決するための詳細情報が必要な場合はお知らせください。事前

+0

Lableを見つけられましたか? –

+0

はい、私はそれを見えるようにしました。私がこのコード行をコメントすると、ドロップダウンリストがうまく読み込まれます。コンボの選択値としてデータベースからフィールドを取得しようとすると問題が発生します –

+0

あなたは国の文字列にLabel lblFacturarAにある値があると言っていますか? –

答えて

0

おかげエラーがddlCities.Items.FindByValue(country).Selected = Truecountryアイテムがドロップダウンリストにあるライン上にあることを確信している場合、私はあなたにホワイトスペースやドロップダウンリストの項目で大文字/小文字の違いがあるダブルチェックを提案し、国別変数。
FindByValueは正確な項目を検出して大文字と小文字を区別するためです。
あなたは、私が外にあったとしてRTRIM(LTRIM(UPPER(DSCA_ZONA))) as Zona

ddlCities.Items.FindByValue(country.ToUpper()).Selected = True

0

に遅れて申し訳ありませんが、私は文字列=トリム(ように私はこのように

点心の国を解決したと思う変るクエリを試してみてくださいctype関数(e.Row.FindControl( "lblFacturarA")、ラベル)の.text) ddlCities.Items.Insert(0、国)

、今それがうまく働いて、Yを実行します。これは有効な方法だと思いますか?

多くの感謝!!!

関連する問題