Как использовать выпадающий список для обновления отображения формы - PullRequest
1 голос
/ 13 октября 2011

У меня возникли проблемы с выяснением этого.

У меня есть раскрывающийся список (заполняется из источника данных, который объединяет имена и фамилии, а значением является «идентификатор сотрудника», а это база данных сервера sql).

У меня также есть вид формы, который отображает всю информацию о «сотруднике» (та же база данных, другой sqldatasource. Я пытаюсь сделать, когда пользователь выбирает сотрудника из выпадающего списка, он находит страницу с соответствующим сотрудником ID и отображает эту страницу.

В форме просмотра также необходимо сохранить подкачку страниц, чтобы пользователь мог выбрать следующий или предыдущий при необходимости. (Было бы также неплохо, если бы ddl обновлялся на следующем и предыдущем, чтобы показать текущего просмотренного сотрудника.)

В настоящее время у меня есть ddl внутри формы, с

SelectedValue='<%# Eval("Employee_ID") %> (which I'm hoping will take care of the ddl showing part, haven't tested that bit as I just woke up,heh).

У меня автоответчик в ddl, установленный в true, и он запускает событие OnSelectedIndexChanged, я просто не уверен, что делать дальше. (точнее, я думаю, я не знаю, как в C # найти страницу с соответствующим «идентификатором сотрудника».

Большое спасибо за любую помощь!

1 Ответ

2 голосов
/ 14 октября 2011

Я думаю, что это большой пример того, как связать и обновить представление формы с помощью выпадающего списка select item ...

    <asp: ObjectDataSource ID="ObjectDataSource1" runat="server" DeleteMethod="Delete"
        InsertMethod="Insert" OldValuesParameterFormatString="original_{0}" SelectMethod="GetData"
        TypeName="DataSet1TableAdapters.teachersTableAdapter" UpdateMethod="Update">
     <DeleteParameters>
       <asp: Parameter Name="Original_PKID" Type="Int32" />
    </DeleteParameters>
    <UpdateParameters>
       <asp: Parameter Name="name" Type="String" />
       <asp: Parameter Name="lastname" Type="String" />
       <asp: Parameter Name="department" Type="Int32" />
       <asp: Parameter Name="PKID" Type="Int32" />
    </UpdateParameters>
    <InsertParameters>
         <asp: Parameter Name="name" Type="String" />
         <asp: Parameter Name="lastname" Type="String" />
         <asp: Parameter Name="department" Type="Int32" />
    </InsertParameters>
  </asp: ObjectDataSource>
    <br />

   <asp: ObjectDataSource ID="ObjectDataSource2" runat="server" DeleteMethod="Delete"
    InsertMethod="Insert" OldValuesParameterFormatString="original_{0}" SelectMethod="GetData"
    TypeName="DataSet1TableAdapters.departmentsTableAdapter" UpdateMethod="Update">
    <DeleteParameters>
        <asp: Parameter Name="Original_PKID" Type="Int32" />
    </DeleteParameters>
    <UpdateParameters>
       <asp: Parameter Name="departmentName" Type="String" />
       <asp: Parameter Name="PKID" Type="Int32" />
    </UpdateParameters>
      <InsertParameters>
         <asp: Parameter Name="departmentName" Type="String" />
        </InsertParameters>
      </asp:ObjectDataSource></div><br />

      <asp: FormView ID="FormView1" runat="server" AllowPaging="True" DataKeyNames="PKID"
       DataSourceID="ObjectDataSource1" OnDataBound="FormView1_DataBound">
    <EditItemTemplate>
      PKID:
       <asp: Label ID="PKIDLabel1" runat="server" Text='<%# Eval("PKID") %>'></asp:Label><br />
       name:
        <asp: TextBox ID="nameTextBox" runat="server" Text='<%# Bind("name") %>'>
          </asp: TextBox><br />
        lastname:
       <asp: TextBox ID="lastnameTextBox" runat="server" Text='<%# Bind("lastname") %>'>
    </asp: TextBox><br />
       department:
        <asp: TextBox ID="departmentTextBox" runat="server" Text='<%# Bind("department") %>'>
         </asp:TextBox><br />
       <asp:LinkButton ID="UpdateButton" runat="server" CausesValidation="True" CommandName="Update"
          Text="Update">
      </asp: LinkButton>
         <asp: LinkButton ID="UpdateCancelButton" runat="server" CausesValidation="False"             CommandName="Cancel"
    Text="Cancel">
         </asp: LinkButton>
     </EditItemTemplate>
    <InsertItemTemplate>
    name:
    <asp: TextBox ID="nameTextBox" runat="server" Text='<%# Bind("name") %>'>
    </asp: TextBox><br />
    lastname:
    <asp: TextBox ID="lastnameTextBox" runat="server" Text='<%# Bind("lastname") %>'>
    </asp: TextBox><br />
    department:
    <asp: TextBox ID="departmentTextBox" runat="server" Text='<%# Bind("department") %>'>
    </asp: TextBox><br />
    <asp: LinkButton ID="InsertButton" runat="server" CausesValidation="True" CommandName="Insert"
    Text="Insert">
    </asp: LinkButton>
    <asp: LinkButton ID="InsertCancelButton" runat="server" CausesValidation="False" CommandName="Cancel"
    Text="Cancel">
    </asp: LinkButton>
    </InsertItemTemplate>
    <ItemTemplate>
    PKID:
    <asp: Label ID="PKIDLabel" runat="server" Text='<%# Eval("PKID") %>'></asp:Label><br />
    name:
    <asp: Label ID="nameLabel" runat="server" Text='<%# Bind("name") %>'></asp: Label><br />
    lastname:
    <asp: Label ID="lastnameLabel" runat="server" Text='<%# Bind("lastname") %>'></asp: Label><br />
    department:
    <asp: DropDownList ID="DropDownList1" runat="server" DataSourceID="ObjectDataSource2"
    DataTextField="departmentName" DataValueField="PKID">
    </asp: DropDownList><br />
    <asp: LinkButton ID="EditButton" runat="server" CausesValidation="False" CommandName="Edit"
    Text="Edit"></asp: LinkButton>
    <asp: LinkButton ID="DeleteButton" runat="server" CausesValidation="False" CommandName="Delete"
    Text="Delete"></asp: LinkButton>
    <asp: LinkButton ID="NewButton" runat="server" CausesValidation="False" CommandName="New"
    Text="New"></asp: LinkButton>
    </ItemTemplate>
    </asp: FormView>

In the code behind i used itemdatabound event of the formview so that i set the <strong class="highlight">selected</strong> value for the dropdownlist as follows : 



protected void FormView1_DataBound(object sender, EventArgs e)
{
        DataRowView drv = (DataRowView)FormView1.DataItem;
        ((DropDownList)FormView1.FindControl("DropDownList1")).SelectedValue = drv["department"].ToString();
 }
 protected void FormView1_DataBound(object sender, EventArgs e)
 {
        DataRowView drv = (DataRowView)FormView1.DataItem;
        ((DropDownList)FormView1.FindControl("DropDownList1")).SelectedValue = drv["department"].ToString();
 }
...