我想将数据库中的项目添加到列表中,而不是从aspx静态添加项目。我做了这个方法,虽然它编译了,但它不会将任何列表项添加到我的下拉列表中。这里有一些代码,如果需要,我愿意提供更多。有问题的方法是addListItemsToPage()。为什么此方法不会将项目添加到下拉列表中?
C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace EndophthalmitisDatabase {
public partial class DataEntry : System.Web.UI.Page {
protected void Page_Load(object sender, EventArgs e) {
addListItemsToPage();
}
protected void addListItemsToPage() {
EndophthalmitisDBDataContext dbContext = new EndophthalmitisDBDataContext();
for (int i=0; dbContext.Hospital_Datas.Count() < i; i++){
int id = dbContext.Hospital_Datas.ElementAt(i).HospitalID;
string str = dbContext.Hospital_Datas.ElementAt(i).Hospital_Name;
ListItem li = new ListItem();
li.Text = str;
li.Value = id.ToString();
hospitalDDL.Items.Add(li);
}
}
protected void submitEndoDataBtn_Click(object sender, EventArgs e)
{
using (EndophthalmitisDBDataContext dbContext = new EndophthalmitisDBDataContext()) {
Occurrence_Data occData = new Occurrence_Data
{
LastName = lastNameTB.Text,
FirstName = firstNameTB.Text,
MRN = int.Parse(mrnTB.Text),
DateOfOccurence = DateOfOccurenceCal.SelectedDate,
InterventionProcedureDone = int.Parse(InterventionDDL.SelectedValue),
PreOccurrencePhysician = int.Parse(InterventionSurgeonDDL.SelectedValue),
LabsSent = labsSentCB.Checked,
PrecipitatingCausePreviousSurgery = int.Parse(preCauseDDL.SelectedValue),
PostOccurrencePhysician = int.Parse(preSurgeonDDL.SelectedValue),
DateOfPreviousSurgery = datePrecipitatingCal.SelectedDate,
Hospital = int.Parse(hospitalDDL.SelectedValue),
AdditionalInformation = moreInfoTB.Text
};
lastNameTB.Text = "";
firstNameTB.Text = "";
mrnTB.Text = "";
labsSentCB.Checked = false;
moreInfoTB.Text = "";
dbContext.Occurrence_Datas.InsertOnSubmit(occData);
dbContext.SubmitChanges();
}
}
}
}
ASPX
<%@ Page Title="" Language="C#" MasterPageFile="~/MainSite.Master" AutoEventWireup="true" CodeBehind="DataEntry.aspx.cs" Inherits="EndophthalmitisDatabase.DataEntry" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="mainContent" runat="server">
<div class="formBox">
<p style="text-align: center">Please use the area below to enter Data.</p>
<div class = "dataEntryForm">
<form id = "occurrenceForm" runat = "server">
<div class ="dataRow">
<div class ="dataRowText">Last Name</div>
<div class ="dataRowEntrance">
<asp:TextBox ID = "lastNameTB" runat = "server"></asp:TextBox>
</div>
</div>
<div class ="dataRow">
<div class ="dataRowText">Last Name</div>
<div class ="dataRowEntrance">
<asp:TextBox ID = "firstNameTB" runat = "server"></asp:TextBox>
</div>
</div>
<div class ="dataRow">
<div class ="dataRowText">MRN</div>
<div class ="dataRowEntrance">
<asp:TextBox ID = "mrnTB" runat = "server"></asp:TextBox>
</div>
</div>
<div class ="dataRow">
<div class ="dataRowText">Date of Occurence</div>
<div class ="dataRowEntrance">
<asp:Calendar ID="DateOfOccurenceCal" runat="server"></asp:Calendar>
</div>
</div>
<div class ="dataRow">
<div class ="dataRowText">Intervention</div>
<div class ="dataRowEntrance">
<asp:DropDownList ID="InterventionDDL" runat="server">
<asp:ListItem Value ="1">Phaco</asp:ListItem>
<asp:ListItem Value ="2">Injection</asp:ListItem>
<asp:ListItem Value ="3">Retina Surgery</asp:ListItem>
<asp:ListItem Value ="4">Transplant</asp:ListItem>
<asp:ListItem Value ="5">Other</asp:ListItem>
</asp:DropDownList>
</div>
</div>
<div class ="dataRow">
<div class ="dataRowText">Intervention Surgeon</div>
<div class ="dataRowEntrance">
<asp:DropDownList ID="InterventionSurgeonDDL" runat="server">
<asp:ListItem Value ="8">Tabin</asp:ListItem>
<asp:ListItem Value ="9">Crandal</asp:ListItem>
</asp:DropDownList>
</div>
</div>
<div class ="dataRow">
<div class ="dataRowText">Labs sent</div>
<div class ="dataRowEntrance">
<asp:CheckBox ID="labsSentCB" runat="server" />
</div>
</div>
<div class ="dataRow">
<div class ="dataRowText">Precipitating Cause</div>
<div class ="dataRowEntrance">
<asp:DropDownList ID="preCauseDDL" runat="server">
<asp:ListItem Value ="1">Phaco</asp:ListItem>
<asp:ListItem Value ="2">Injection</asp:ListItem>
<asp:ListItem Value ="3">Retina Surgery</asp:ListItem>
<asp:ListItem Value ="4">Transplant</asp:ListItem>
<asp:ListItem Value ="5">Other</asp:ListItem>
</asp:DropDownList>
</div>
</div>
<div class ="dataRow">
<div class ="dataRowText">Precipitating Surgeon</div>
<div class ="dataRowEntrance">
<asp:DropDownList ID="preSurgeonDDL" runat="server">
<asp:ListItem Value ="8">Tabin</asp:ListItem>
<asp:ListItem Value ="9">Crandal</asp:ListItem>
</asp:DropDownList>
</div>
</div>
<div class ="dataRow">
<div class ="dataRowText">Data of Precipitating Cause</div>
<div class ="dataRowEntrance">
<asp:Calendar ID ="datePrecipitatingCal" runat="server"></asp:Calendar>
</div>
</div>
<div class ="dataRow">
<div class ="dataRowText">Hospital</div>
<div class ="dataRowEntrance">
<asp:DropDownList ID ="hospitalDDL" runat="server">
</asp:DropDownList>
</div>
</div>
<div class ="dataRow">
<div class ="dataRowText">Additional Information</div>
<div class ="dataRowEntrance">
<asp:TextBox ID ="moreInfoTB" runat="server" Rows ="100"></asp:TextBox>
</div>
</div>
<div class ="dataRow">
<div class ="dataRowText">
<asp:Button ID ="submitEndoDataBtn" runat="server" Text="Submit" OnClick ="submitEndoDataBtn_Click"/>
</div>
</div>
</form>
</div>
</div>
</asp:Content>
这是概念证明?或“真实”的代码?如果是后者,请阅读http://www.hanselman.com/blog/AReminderOnThreeMultiTierLayerArchitectureDesignBroughtToYouByMyLateNightFrustrations.aspx – granadaCoder
您的代码结构的方式,最好从db上下文中完全实现列表,而不是始终引用DbSet。 – Igor
它的“真实代码”林不知道你的意思是... – Darokrithia