绑定下拉列表时,空格也绑定

时间:2012-03-21 16:01:29

标签: asp.net

当我绑定dropdownlistHostelRoomType时,它与上面留下的空白区域绑定..我不知道为什么会发生这种情况。请帮我解决这个问题..我的代码:

<div>
                <fieldset>
                    <legend>Hostel Details </legend>
                    <asp:Label ID="LabelHostelRoomType" runat="server" Text="Room Type"></asp:Label>
                    <asp:DropDownList ID="DropDownListHostelRoom" runat="server" DataTextField="HTypeName"
                        DataValueField="_HRTypID" OnSelectedIndexChanged="DropDownListHostelRoom_SelectedIndexChanged">
                    </asp:DropDownList>
                    <asp:GridView ID="GridViewHostelRoom" runat="server">
                    </asp:GridView>
                </fieldset>
            </div>

private void FillHostelRoomType()
            {
                SqlConnection cn = new SqlConnection(@"Data Source=.;Initial Catalog=_uniManagement;Integrated Security=True");
                string sqlDropdownHostelRoom = String.Format("SELECT [_HRTypID], [HTYPeNAME] FROM [_HOSTELS_Room_TYPE]");
                SqlCommand cmd = new SqlCommand(sqlDropdownHostelRoom);
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                DataTable dt = new DataTable();
                da.Fill(dt);
                DropDownListHostelRoom.DataSource = dt;
                DropDownListHostelRoom.DataBind();
            }



protected override void OnInit(EventArgs e)
        {
            DropDownListHostelRoom.AppendDataBoundItems = true;
            DropDownListMemberType.AppendDataBoundItems = true;
            FillHostelRoomType();
            FillHostelMember();
            base.OnInit(e);
        }

1 个答案:

答案 0 :(得分:1)

最有可能的是,源数据库中有空格。在您的SQL语句中,您应该能够在字段名称周围使用RTRIM()来消除此问题。

另一个可能的原因可能是DB中的字段是具有指定长度的CHAR。如果是这种情况,即使没有空格,检索它也总是会给你很多空格,因此SQL Server会在末尾填充足够的空格以适应。

例如,定义为CHAR(10)且其中包含数据"DAVID"的字段将返回为"DAVID "(David附加了五个空格以使总数达到10)

无论哪种方式,RTRIM都应该修复它。

string sqlDropdownHostelRoom = String.Format("SELECT [_HRTypID], RTRIM([HTYPeNAME]) AS HTYPeNAME FROM [_HOSTELS_Room_TYPE]");