0

ASP.NETは初めてです。[新規]をクリックして新しいレコードを追加するときに、ドロップダウンリストにアイテムを挿入しようとしています。フォームがItemTemplateからInsertTempplateに切り替わります

エラー:

System.NullReferenceException:オブジェクト参照がオブジェクトのインスタンスに設定されていません。」

私のDetailsViewのこのコード。

    <ItemTemplate>
         <asp:Label ID="lblVendorName" 
        runat="Server" style="text-align:left; width:100%" 
        Text='<%# Eval("VendorName")%>' Width="70%"/>

    </ItemTemplate>    
    <InsertItemTemplate>
        <asp:DropDownList id="insertVendorName" datasourceid="VendorSqlDataSource"
            datatextfield="VendorName" DataValueField="VendorID"  
            OnSelectedIndexChanged="ddlVendor_SelectedIndexChanged" 
            runat="server" AutoPostBack="true"  />
        <asp:SqlDataSource ID="VendorSqlDataSource"  
        ConnectionString="<%$Connectionstrings:ConnectionString%>"
            SelectCommand="SELECT VendorID, VendorName 
                from MDF_Vendor"  runat="server">
        </asp:SqlDataSource>
    </InsertItemTemplate>

更新...以下はリンクボットンのセットです。

<asp:TemplateField>  
    <ItemTemplate> 
        <asp:LinkButton ID="btnedit" runat="server" 
            CommandName="Edit" Text="Edit"/>  |   
        <asp:LinkButton ID="btnInsert" runat="Server" 
            Text="New" CommandName="New" 
            OnClick="LinkButton_Click"  />  |  
        <asp:LinkButton ID="btnDelete" 
            runat="server" 
            CommandName="Delete" Text="Delete" />      | 
    </ItemTemplate>  

    <InsertItemTemplate>
    <asp:LinkButton ID="btnInsert" runat="Server" 
        Text="Insert" CommandName="Insert"/>    
    <asp:LinkButton ID="btncancel" runat="server" 
        CommandName="Cancel" Text="Cancel"/> 
    </InsertItemTemplate>

    <EditItemTemplate>                                                 
        <asp:LinkButton ID="btnupdate" runat="server" 
            CommandName="Update" Text="Update" />                  
        <asp:LinkButton ID="btncancel" runat="server" 
            CommandName="Cancel" Text="Cancel"/>       
    </EditItemTemplate>
</asp:TemplateField> 

@Aghislasによって提案された以下のコードを試しました(ありがとう!)

protected void LinkButton_Click(object sender, EventArgs e)
{
    DropDownList ddlVendor = (DropDownList)DetailsView1.FindControl("insertVendorName"); 
    ddlVendor.Items.Insert(0, new ListItem("---Select---", "-1"));
} 

助けてください。ありがとうございました。

4

1 に答える 1

0

このコードで試すことができます

<asp:LinkButton id="LinkButton1" 
       Text="Click Me" 
       OnClick="LinkButton_Click" 
       runat="server"/>


 protected void LinkButton_Click(Object sender, EventArgs e) 
 {
      var ddlVendor =(DropDownList)DetailsView1.FindControl("insertVendorName");

      ddlVendor.Items.Insert(0, new ListItem("---Select---", "-1"));
 }

注:でコードを削除しPage_Load、クリックデリゲートに移動します

于 2012-10-10T18:42:43.313 に答える