当我绑定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);
}
答案 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]");