0

ASP.NET は初めてです

DetailsView のこのコード Page1.aspx があります。

                <InsertItemTemplate>
                    <asp:DropDownList id="VendorName" datasourceid="VendorSqlDataSource"
                        datatextfield="VendorName" DataValueField="VendorID"  
                        SelectedValue='<%# Bind("VendorID") %>' runat="server" AutoPostBack="true" />
                </InsertItemTemplate>
                <EditItemTemplate>
                    <asp:DropDownList id="VendorName" datasourceid="VendorSqlDataSource"
                    datatextfield="VendorName"  DataValueField="VendorID"  
                    SelectedValue='<%# Bind("VendorID") %>'   runat="server"  OnSelectedIndexChanged="dllVendor_OnSelectedIndexChanged"  AutoPostBack="true" />
                </EditItemTemplate>
            </asp:TemplateField>

        <asp:TemplateField HeaderText="Vendor BU">
                <ItemTemplate>
                    <asp:Label ID="VendorBUName" runat="Server" style="text-align:left; width:100%" Text='<%# Eval("VendorBUName")%>' Width="70%"/>
                </ItemTemplate>
                <InsertItemTemplate>
                    <asp:DropDownList id="VendorBUName" datasourceid="VendorBUSqlDataSource"
                        datatextfield="VendorBUName" DataValueField="VendorBUID"  
                        SelectedValue='<%# Bind("VendorBUID") %>' runat="server"/>
                </InsertItemTemplate>
                <EditItemTemplate>
                    <asp:DropDownList id="VendorBUName" datasourceid="VendorBUSqlDataSource"
                    datatextfield="VendorBUName"    DataValueField="VendorBUID"  
                    SelectedValue='<%# Bind("VendorBUID") %>'   runat="server"/>
                </EditItemTemplate>
            </asp:TemplateField>

このコード ビハインドで 2 番目のドロップダウン リストを更新するために、Page1.aspx.cs のビハインド コードを作成しようとしています。

(VendorBUName"), but keeps getting a error "".
    protected void OnSelectedIndexChanged(object VendorID)
    {
        string queryString = "SELECT VendorBUID, VendorBUName From MDF_VendorBU WHERE VendorID = @VendorID";
        System.Data.SqlClient.SqlConnection connection = new System.Data.SqlClient.SqlConnection("ConnectionString");
        System.Data.SqlClient.SqlCommand command = new System.Data.SqlClient.SqlCommand(queryString, connection);
        command.Parameters.AddWithValue("@VendorID", VendorID);
        connection.Open();

        DataTable dt = new DataTable();
        SqlDataAdapter ad = new SqlDataAdapter(command);
        ad.Fill(dt);

        /*
        VendorBUName.Items.Clear();
        if (dt.Rows.Count > 0)
        {

            VendorBUName.DataSource = dt;
            VendorBUName.DataTextField = "VendorBUName";
            VendorBUName.DataValueField = "VendorBUID";
            VendorBUName.DataBind();
        }
        */

        connection.Close(); 


    }

    //protected void dllVendor_OnSelectedIndexChanged(object sender, System.EventArgs e)
    //{ 
        //OnSelectedIndexChanged(VendorName.SelectedValue.ToString());
    //}

「名前 'VendorBUName' は現在のコンテキストに存在しません」というメッセージが引き続き表示されます。コード ビハインドが Page1.aspx の 2 番目のドロップダウンリストを認識していないようです。

助けてください。

4

1 に答える 1