2

SelectedValue = ""[マイ]ボタンをクリックすると、が表示されます。

私のaspx:

<telerik:RadComboBox ID="ddl_contactList" runat="server" AutoPostBack="True" CausesValidation="False"
            CollapseDelay="0" Culture="ar-EG" ExpandDelay="0" Filter="StartsWith" ItemsPerRequest="10"
            MarkFirstMatch="true" Skin="Outlook" EnableAutomaticLoadOnDemand="True" EmptyMessage="-New Menu-"
            ShowMoreResultsBox="True" OnSelectedIndexChanged="ddl_contactList_SelectedIndexChanged"
            EnableItemCaching="false" EnableLoadOnDemand="True" EnableVirtualScrolling="True">
        </telerik:RadComboBox>

私の.cs:

 private void BindContactLists(int year, int main_code)
        {
            ddl_contactList.Items.Clear();
            DataTable dt = ContactList.GetContactListsByDep(year, main_code);
            ddl_contactList.DataSource = dt;
            ddl_contactList.DataTextField = "list_desc";
            ddl_contactList.DataValueField = "list_code";
            ddl_contactList.DataBind();

        }

で呼び出すと、次のエラーが発生するpage loadため、で呼び出し ます。!Page.Ispostback

割り当てられたデータソースはありません。コールバックリクエストを完了できません。

この問題を解決するにはどうすればよいですか?たった今:

ddl_contactList.Text == "MySelectedItemText"

しかし

selectedValue == ""selectedItem == ""

4

3 に答える 3

8

呼び出しをメソッドからメソッドにBindContactLists()移動します。これにより、ページのライフサイクルの後半でViewStateバインディング用にコントロールを設定でき、SelectedValueプロパティを適切に設定できます。Page_Load()Page_Init()

于 2012-10-15T19:20:40.287 に答える
3

データを再バインドするため、これは正常です=>選択した値を消去します

ブロックを次のように設定することをお勧めします!IsPostBack=>投稿時に消去しない

PageLoadで

if(! IsPostBack)
{

           ddl_contactList.Items.Clear();
            DataTable dt = ContactList.GetContactListsByDep(year, main_code);
            ddl_contactList.DataSource = dt;
            ddl_contactList.DataTextField = "list_desc";
            ddl_contactList.DataValueField = "list_code";
            ddl_contactList.DataBind();


}

そして、あなたはあなたのコントロールを維持しますViewState

セットするEnableViewState="true"

于 2012-09-26T17:56:09.823 に答える
1

ページの読み込みや初期化時に、データセットやデータテーブルなどのデータソースがいっぱいになるようにしてください

于 2012-10-21T10:50:33.717 に答える