-2

ddl からテキスト ボックスを選択すると、テキスト ボックスに入力するコードがあります。これはうまく機能し、私のページの読み込み方法にあります。

        protected void Page_Load(object sender, EventArgs e)
    {
        //drp_Customer.ClearSelection();


        using (CustomerDataContext obj = new CustomerDataContext())
        {
            // Get fields for drp_Customer
            // ===========================
            var allCustomers = from c in obj.Customers
                               orderby c.FirstName
                               select new
                               {
                                   c.FirstName,
                                   c.CustomerId
                               };

            drp_Customer.DataTextField = "FirstName";
            drp_Customer.DataValueField = "CustomerId";
            drp_Customer.DataSource = allCustomers.ToList();
            drp_Customer.DataBind();

            if (drp_Customer.SelectedItem.Text == " -- Select Customer -- ")
            {
                lbl_message.Text = "Please select a customer to update";
            }
            else
            {
                Customer myCust = obj.Customers.SingleOrDefault(c => c.CustomerId == Convert.ToInt32(drp_Customer.SelectedItem.Value));

                if (myCust != null)
                {
                    txt_FirstName.Text = myCust.FirstName;
                    txt_Surname.Text = myCust.Surname;
                    txt_HouseNumber.Text = myCust.HouseNumberName;
                    txt_Address.Text = myCust.Address;
                    txt_Town.Text = myCust.Town;
                    txt_Telephone.Text = myCust.Telephone;
                    txt_Postcode.Text = myCust.Postcode;
                }

            }

        }


    }

以前は更新していたページに更新ボタンがありますが、このコードが機能するため機能しなくなりました。

        protected void btn_Update_Click(object sender, EventArgs e)
    {
        using (CustomerDataContext obj = new CustomerDataContext())
        {
            Customer myCust = obj.Customers.SingleOrDefault(c => c.CustomerId == Convert.ToInt32(drp_Customer.SelectedValue));

            // Check If any are empty 
            // ======================
            if (myCust != null)
            {
                myCust.FirstName = txt_FirstName.Text;
                myCust.Surname = txt_Surname.Text;
                myCust.HouseNumberName = txt_HouseNumber.Text;
                myCust.Address = txt_Address.Text;
                myCust.Town = txt_Town.Text;
                myCust.Telephone = txt_Telephone.Text;
                myCust.Postcode = txt_Postcode.Text;
            }

            obj.SubmitChanges();
        }

    }

同じ customerId を照会していますが、コードをステップ実行すると // myCust.FirstName = txt_FirstName.Text; になります。変更しても変わりません。

変更を実装するには、ページを更新する必要がありますか? または、どういうわけかページの読み込みにそれを含める必要がありますか??

4

1 に答える 1

0

のすべてのコントロールをリロードしているようです。メソッドPage_Loadに追加!Page.IsPostbackしてみてください。Page_Loadこのようなもの:

protected void Page_Load(object sender, EventArgs e)
{
     if (!Page.IsPostback)
     {
         //Your code goes here.
     }
}
于 2013-01-16T13:00:10.683 に答える