2015-03-19 1 views
0

В ASP.net 4.5 C# с использованием AJAX UpdatePanel,Auto Fill Textbox в ASP.NET с использованием AJAX UpdatePanel в зависимости от текста, набранного в другом текстовом поле

Я пытаюсь иметь текстовое поле outputOwnDept заполнить, из базы данных, на основе текст, введенный в текстовое поле inputOwner. Кроме того, я пытаюсь запустить этот поиск, когда пользователь начинает вводить внутри inputOwner.

Что я делаю неправильно?

Вот мой ASPX:

<asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
<ContentTemplate> 
<div class="col-lg-6"> 
<div class="well bs-component"> 
    <fieldset> 
    <legend>Ownership and Support</legend> 
    <div class="form-group"> 
     <label for="inputOwner" class="col-lg-2 control-label">IT Owner's Network ID:</label> 
     <div class="col-lg-10"> 
      <asp:TextBox ID="inputOwner" runat="server" OnTextChanged="inputOwnerTextChanged"></asp:TextBox> 
     </div> 
    </div> 
    </fieldset> 
</div> 
</div> 
<div class="col-lg-6"> 
<div class="well bs-component"> 
    <fieldset> 
    <div class="form-group"> 
     <label for="outputOwnDept" class="col-lg-2 control-label">Owner's Department:</label> 
     <div class="col-lg-10"> 
     <asp:TextBox ID="" runat="server" ReadOnly="true"></asp:TextBox> 
     </div> 
    </div> 
    </fieldset> 
</div> 
</div> 
</ContentTemplate> 
<triggers><asp:AsyncPostBackTrigger ControlID="inputOwner" EventName="TextChanged" /></triggers> 
</asp:UpdatePanel> 

Вот мой код позади:

public void inputOwnerTextChanged(object sender, EventArgs e) 
     { 

      DataTable owndept = new DataTable(); 
      using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["PEOPLESOFT"].ConnectionString)) 
      { 

       try 
       { 
        string NetworkID = inputOwner.Text; 
        SqlDataAdapter adapter = new SqlDataAdapter("select max(vw.DEPTNAME) as DEPTNAME from sysadm.PS_PH_ACTIVE_EE_VW vw where vw.NETWORK_ID like '%" + NetworkID + "%';", con); 
        adapter.Fill(owndept); 

        outputOwnDept.Text = (string)DataBinder.Eval(owndept, "DEPTNAME"); 
        outputOwnDept.DataBind(); 
       } 
       catch (Exception ex) 
       { 
        // Handle the error 
       } 
      } 
     } 

ответ

0

Проблема была: -I нужно AutoPostBack = "True"

-since Я пытаясь подключиться к oracle db, мне нужно, чтобы ниже было добавлено код: с использованием Oracle.ManagedDataAccess.Client; с использованием Oracle.ManagedDataAccess.Types;

-I необходим также использовать различные функции для подключения к базе данных оракула

-I нужно изменить строку подключения в Web.config для Oracle

-Такжа, мне нужно, чтобы удалить " ;» с моей SQL строки для Oracle

-aspx:

<asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
<ContentTemplate> 
<div class="col-lg-10"> 
<div class="well bs-component"> 
    <fieldset> 
    <legend>Ownership and Support</legend> 
    <div class="form-group"> 
     <label for="inputOwner" class="col-lg-2 control-label">IT Owner:</label> 
     <div class="col-lg-10"> 
      <asp:TextBox ID="inputOwner" runat="server" OnTextChanged="inputOwnerTextChanged" autopostback="True" placeholder="IT  Owner's Network ID"></asp:TextBox> 
     </div> 
    </div> 
    <div class="form-group"> 
     <label for="outputOwnDept" class="col-lg-2 control-label">Owner's  Department:</label> 
     <div class="col-lg-10"> 
      <asp:Label ID="outputOwnDept" runat="server" Text="" BackColor="#F0F0F0"></asp:Label> 
     </div> 
    </div> 
    </fieldset> 
</div> 
</div> 
</ContentTemplate> 
<triggers><asp:AsyncPostBackTrigger ControlID="inputOwner" EventName="TextChanged" /></triggers> 
</asp:UpdatePanel> 

фоновым кодом:

protected void inputOwnerTextChanged(object sender, EventArgs e) 
    { 

     DataTable owndept = new DataTable(); 
     using (OracleConnection con = new OracleConnection(ConfigurationManager.ConnectionStrings["EMPLOYMENTEXP.HRPRD"].ConnectionString)) 
     { 

      try 
      { 
       string NetworkID = inputOwner.Text; 
       OracleDataAdapter adapter = new OracleDataAdapter("select max(vw.DEPTNAME) as DEPTNAME from sysadm.PS_PH_ACTIVE_EE_VW vw where vw.NETWORK_ID = '" + NetworkID + "'", con); 

       adapter.Fill(owndept); 

       outputOwnDept.Text = owndept.Rows[0].Field<String>(0); 
      } 
      catch (SqlException ex) 
      { 
       outputOwnDept.Text = ex.ToString(); 
      } 
     } 
    } 

Web.config:

<add name="EMPLOYMENTEXP.HRPRD" connectionString="DATA SOURCE=host:port/database;USER ID=xxx;PASSWORD=xxx;" providerName="Oracle.ManagedDataAccess.Client" />