Как связать значения для формирования элементов управления - PullRequest
0 голосов
/ 01 ноября 2018

Я пытаюсь привязать значение к элементам управления ASP.NET из документа XML. Моя конечная цель - предварительно заполнить элементы управления формой в зависимости от значения, выбранного пользователем в раскрывающемся списке идентификаторов. Оттуда пользователь сможет редактировать значения и сохранять изменения обратно в XML-документ.

Мой подход заключается в попытке привязать каждое значение тега xml id к выпадающему списку. До сих пор я придумал это.

XML: registrations.xml

 <registrations>
      <Registration>
         <id>1</id>
         <fullName>Keiran Bernal</fullName>
         <emailAddress>k.bernal@gmail.com</emailAddress>
         <registrationType>Conference only</registrationType>
         <attendingSocialEvent>Yes</attendingSocialEvent>
      </Registration>
      <Registration>
         <id>2</id>
         <fullName>Cordelia Pierce</fullName>
         <emailAddress>c.pierce@outlook.com</emailAddress>
         <registrationType>Conference and Dinner</registrationType>
         <attendingSocialEvent>Yes</attendingSocialEvent>
      </Registration>
      <Registration>
         <id>3</id>
         <fullName>Zachery Guy</fullName>
         <emailAddress>z.guy@yahoo.com</emailAddress>
         <registrationType>Conference only</registrationType>
         <attendingSocialEvent>Yes</attendingSocialEvent>
      </Registration>
      <Registration>
         <id>4</id>
         <fullName>Kiana Hawworth</fullName>
         <emailAddress>k.hawworth@bigpond.com</emailAddress>
         <registrationType>-</registrationType>
         <attendingSocialEvent>No</attendingSocialEvent>
      </Registration>
   </registrations>

Код позади: edit.aspx.cs

protected void Page_Load(object sender, EventArgs e)
{
    if (Page.IsPostBack)
    {
        DataSet dsEdit = new DataSet();
        dsEdit.ReadXml(Server.MapPath("~/registrations.xml"));
        dllIdEdit.DataTextField = "fullName";
        dllIdEdit.DataValueField = "id";
        dllIdEdit.DataSource = dsEdit;
        dllIdEdit.DataBind();
    }
}

Веб-форма ASP.NET: edit.aspx

 <%--ID--%>
 <asp:Label ID="lblIdEdit" runat="server" Text="ID" CssClass="editLbl"></asp:Label>
 <asp:DropDownList ID="dllIdEdit" runat="server" CssClass="editDdl"></asp:DropDownList><br />

Я получил это из нескольких уроков, но по какой-то причине выпадающий список остается пустым и не может понять, почему.

1 Ответ

0 голосов
/ 01 ноября 2018

Попробуйте изменить

Page.IsPostBack

to !Page.IsPostBack

! Page.IsPostBack - это первый раз, когда страница загружается

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...