0

我是 c# 和 asp.net 的新手。我有一个GridView与某些记录。When any record is chosen it is displayed in the DetailsView. 我的详细信息视图有 3 DropDownLists。在我的详细信息视图的编辑模式中,当我在下拉列表中更改我的选择并更新它时,特定字段采用空值。我用过OnSelectedIndexChanged,我确信它会被触发,但值为空。这是我的代码。

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

而不是DropDownList ddl = (DropDownList)this.form1.FindControl("DropDownList1");,试试这个:

DropDownList ddl = (DropDownList)sender;

`

于 2012-08-20T21:39:01.607 回答
1

好吧,@College 错误可能与未提供命名参数有关,而不是与缺少列有关。

于 2012-08-20T21:24:32.460 回答
1

呼叫ddl.DataBind();将重置SelectedIndex. 为了避免代码中的循环逻辑,调用DataBind()ddl 的SelectedIndexChanged事件处理程序是一个坏主意。

于 2012-08-20T22:54:15.020 回答