Я пытаюсь использовать Сервисы на веб-странице, но маркированный список печатает "ASPWebApp.CottagesServiceReference.Cottages"
или System.collections.Generic.List 1
. Очевидно, я хочу, чтобы он отображал элементы, выбранные из запроса на выборку в сервисе.
protected void BtnID_Click(object sender, EventArgs e)
{
int id = Convert.ToInt32(TextBoxID.Text);
try
{
List<ASPWebApp.CottagesServiceReference.Cottages> cottages = ws.GetCottageInfoByID(id).ToList();
ListItem cottage = new ListItem(String.Join(".", cottages));
BulletedList1.Items.Add(cottage);
BulletedList1.DataSource = cottages;
BulletedList1.DataBind();
}
catch (Exception a)
{
Console.WriteLine(a);
}
}
Услуги
public List<Cottages> GetCottageInfoByID(int id)
{
List<Cottages> cottage = new List<Cottages>();
SqlConnection conn = new SqlConnection(dataSource);
string sqlQuerySelectCottageInfo = "SELECT Cottage_Name as 'Name', Cottage_Location as Location, No_Of_Rooms as Rooms, Description, Cost_Per_Night as Cost FROM dbo.Cottages where Cottage_ID = @id";
SqlCommand cmd = new SqlCommand(sqlQuerySelectCottageInfo);
cmd.Parameters.AddWithValue("@id", id);
conn.Open();
cmd.Connection = conn;
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
if (!reader.HasRows)
{
throw new Exception("No Cotteges Found");
}
else
{
cottage.Add(new Cottages()
{
Name = (reader[("Name")].ToString()),
Location = (reader[("Location")].ToString()),
Rooms = Convert.ToInt32(reader[("Rooms")]),
Cost = Convert.ToDecimal(reader[("Cost")]),
Description = (reader[("Description")].ToString()),
});
}
}
reader.Close();
conn.Close();
return cottage;
}
HTML
<td class="Column2" colspan="1">
<asp:TextBox class="TxtID" ID="TextBoxID" runat="server" BorderColor="Gray" BorderStyle="Solid" BorderWidth="2px" CausesValidation="False"></asp:TextBox>
<asp:Button class="BtnID" ID="BtnID" runat="server" Text="Search" OnClick="BtnID_Click" />
<asp:BulletedList class="Bullets" ID="BulletedList1" runat="server">
</asp:BulletedList>
</td>
точка останова показала, что информация о коттедже передается в List<ASPWebApp.CottagesServiceReference.Cottages>
из метода ws.GetCottageInfoByID
.
Почему после этого он не печатает в маркированный список?
ТИА!
Редактировать **
Получил работу, используя этот подход:
CottagesServiceReference.Cottages cottages = ws.GetCottageInfoByID(id);
//Populate bulleted list with Cottages class
BulletedList1.Items.Clear();
BulletedList1.Items.Add(cottages.Name);
BulletedList1.Items.Add(cottages.Location);
BulletedList1.Items.Add(cottages.Rooms.ToString() + " Rooms");
BulletedList1.Items.Add(cottages.Description);
BulletedList1.Items.Add("£" + cottages.Cost.ToString() + ".00");
Что сейчас кажется очень простым и доставило мне столько хлопот ...