現時点では、私はすでにテーブルからの情報を入力したddlを持っています。自動ポストバックに設定されている顧客のリストです。私が実行している問題は、デフォルトの選択が常にリストの最初の顧客であり、1つの顧客をクリックしてポストバックを行い、必要なすべての情報を取得し、最初の顧客に選択肢を設定し、ポストバックをしないでください。あらかじめ設定されたドロップダウンリストをasp C#に取り込むことはできますか?
私が考えて達成しようとしている修正は、 "Please Select Customer"のようなddlにnull値を設定することです。 DDL編集項目に入って項目を追加しましたが、しかし、テーブルへの呼び出しにはそれが含まれていません。それを含める方法はありますか?
Mozilla Firefoxでは、ポストバック後に同じ顧客にとどまるため、この問題は発生しません。私が何かを片付けることができる場合、私は自分のベストを尽くします、役に立つかもしれないコードのどの部分がある場合、私はそれを
//save the value of the current selection to reselect later if still exists
string origSelectedItem = ddlSelectedCustomer.SelectedValue;
//clear and refill the list
ddlSelectedCustomer.Items.Clear();
//check what role the user is in
string usersRole = Roles.GetRolesForUser(Membership.GetUser().UserName)[0];
MembershipUser user = Membership.GetUser();
switch (usersRole)
{
case "SalesRep":
ddlSelectedCustomer.DataSource =
DAL.Util.getSalesRepCustomers((Guid)user.ProviderUserKey);
ddlSelectedCustomer.DataBind();
break;
case "BasicUser":
case "Customer":
ddlSelectedCustomer.DataSource =
DAL.Util.getCustomersListForUser((Guid)user.ProviderUserKey);
ddlSelectedCustomer.DataBind();
break;
case "Admin":
case "SuperAdmin":
ddlSelectedCustomer.DataSource = DAL.Util.getAllCustomersList();
ddlSelectedCustomer.DataBind();
break;
default:
break;
}
//if user had a company selected, reselect it if it exists
if (origSelectedItem != string.Empty)
ddlSelectedCustomer.SelectedValue = origSelectedItem;
else if (ddlSelectedCustomer.Items.Count == 1)
//if only one item in the list, select it
ddlSelectedCustomer.Items[0].Selected = true;
を提供することができます。また、これはのマスターページにコードビハインドでありますサイト。
あなたは
あなたのDDLであなたの非常に最初の項目として「選択してください」のコードスニペットを追加しますうわー? –
コードが役に立ちます。一見すると、最初の訪問ではなく、各ページの更新時にDDLを再投入していると思われます。それはDDLにあなたが選択したものを「忘れる」原因になります。しかし、FFの行動については確信していません... – n8wrl
これは「グラントの墓に埋葬された人」のような謎のように聞こえます。 – Jeff