0

私は c# と asp.net が初めてです。私はGridView特定のレコードを持っています。任意のレコードが選択されると、 に表示されますDetailsView。私の詳細ビューには 3 がありDropDownListsます。詳細ビューの編集モードで、ドロップダウン リストの選択を変更して更新すると、特定のフィールドが null 値になります。私は使用OnSelectedIndexChangedしましたが、トリガーされていると確信していますが、値はnullです。これが私のコードです。

protected void DropDownList1_SelectedIndexChanged(object sender,EventArgs e)
{
    DropDownList ddl = (DropDownList)this.form1.FindControl("DropDownList1");
    hi.Visible = true;
    if (ddl != null)
    {
        ddl.Text = ddl.SelectedItem.Value;
        ddl.DataBind();
    }     
}

また、プロパティを使用して更新しようとしましたSelectedValueが、それもうまくいきませんでした。

<asp:DropDownList ID="DropDownList1" DataTextField="strCollegeLongName"
    DataValueField="strCollegeLongName" runat="server" 
    DataSourceID="SqlDataSource1" autoPostBack="true" AppendDataBoundItems="false" 
    SelectedValue='<%#Bind="College">%'>
</asp:DropDownList>

UpdateCommand="UPDATE [RegistrationFormInfo] SET [FirstName]=@FirstName,
    [LastName]=@LastName,[EmailAddress]=@EmailAddress,[GradDate]=@GradDate,
    [WorkAuth]=@WorkAuth,[Address]=@Address,[Phone]=@Phone,[UFID]=@UFID,
    [GatorAcct]=@GatorAcct,[College]=@College,[Major]=@Major,[UserType]=@UserType,
    [AdminUser]=@AdminUser,[blnActive]=@blnActive,[EntryTS]=@EntryTS WHERE [Guid]=@Guid "

したがって、ここでは、@College存在しないというエラーがスローされますが、テーブルにはCollege列があります。

私は立ち往生しており、どんな助けも大歓迎です!

4

3 に答える 3

1

を呼び出すddl.DataBind();と、 がリセットされSelectedIndexます。DataBind()コード内の循環ロジックを回避するために、ddl のSelectedIndexChangedイベント ハンドラーを呼び出すことはお勧めできません。

于 2012-08-20T22:54:15.020 に答える
1

の代わりにDropDownList ddl = (DropDownList)this.form1.FindControl("DropDownList1");、これを試してください:

DropDownList ddl = (DropDownList)sender;

`

于 2012-08-20T21:39:01.607 に答える