2016-02-10 2 views
1

Я очень новичок в C# и aspx-файлах. мы используем очень старое приложение, написанное в 2008 году, и не имеем никаких контактных данных разработчика. что мы хотим сделать, это внести некоторые изменения, поскольку некоторые части исходного кода больше не имеют отношения к делу. Мне удалось найти файл .aspx и внес некоторые изменения, но некоторые из них не работают. пытался найти файл .aspx.cs, но похоже, что все они были скомпилированы в DLL-файл в папке bin. Я нашел исходный файл .aspx.cs в резервном копировании.установка значения dropdownlist по умолчанию из таблицы sql в aspx

Проблема заключается в том, что одно из полей в форме выпадающего списка и связано с таблицей данных в sql и устанавливается по мере необходимости. Когда я открываю веб-страницу, значение по умолчанию в этом раскрывающемся списке: -Select Contact Method-.

Мое понимание это потому, что код позади имеет следующее:

# region populate ContactMethod Combo(Primary and Secondary)** 
private void PopulateContactMethod(int intContactMethodID) 
{ 
    // get data 
    MasterValue oMV = new MasterValue(); 
    DataTable dt = oMV.GetAll(MasterValueType.ContactMethod); 
    // populate combo 
    oUtil.PopulateCombo(cboContact, dt, "intID", "strText", 
    intContactMethodID.ToString(), "-Select Contact Method-"); 
} 
# endregion 

В таблице SQL имеет следующие значения 1 = Домашний телефон, 2 = Mobile, 3 = Email & 4 = None

и файл .aspx имеет следующее:

<%@ Page CodeBehind="add_new_user.aspx.cs" Language="c#" AutoEventWireup="false" 
Inherits="App.UI.add_new_user" %> 
. 
. 
. 
<tr> 
    <td class="formtext" align="right">Primary Contact Method:<SPAN class="star">*</SPAN> 
    </td> 
    <td class="formtext" vAlign="top" align="left"> 
     <asp:dropdownlist id="cboContact" runat="server" CssClass="ListBox" Width="150px"> 
     </asp:dropdownlist> 
     <asp:requiredfieldvalidator id="rfvContactMethod" runat="server" 
     ControlToValidate="cboContact" Display="None" ErrorMessage="Please select contact 
     method" InitialValue="0"> 
     </asp:requiredfieldvalidator> 
    </td> 
</tr> 

Что нам нужно, когда мы открываем значение веб-страницы по умолчанию в этом списке является None (4), а не не -Выберите контакторов t Метод.

Любая помощь будет очень признательна!

Заранее спасибо.

+0

Я сомневаюсь, что есть простое решение вашей проблемы, так как у вас нет доступа к коду. Однако почему вы не можете использовать код, который вы нашли в резервных копиях, и создать новое решение, используя его, и aspx, который у вас уже есть? Затем вы можете, естественно, отредактировать код позади. – Andrei

+0

Привет, Андрей, я подумал об этом. Но, прежде всего, поскольку я новичок во всем этом, я бы не знал, что делать, так как похоже, что около 1000 файлов .aspx .aspx.cs и .aspx.resx, которые были скомпилированы в DLL-файл.А во-вторых, поскольку приложению 9 лет, и мы все еще используем его на ежедневной основе, я не хочу его нарушать. Поэтому пытаюсь найти решения. Спасибо – Yuri

+0

Будет ли клиентское решение только для вас, javascript? Потому что без изменения кода, за которым вы хотите, просто невозможно – Andrei

ответ

1

Насколько я вижу, эта страница .aspx не использует главную страницу. Если это так, найдите тег <head> и добавьте к нему новый <script>. Внутри него будет функция зафиксировать выбор списка:

<head> 
    ... 
    <script type="text/javascript"> 
     function fixContactListSelection() { 
      var list = document.getElementById("<%=cboContact.ClientID%>"); 
      list.value = '4'; 
     } 

     if (window.addEventListener) { 
      window.addEventListener('load', fixContactListSelection, false); 
     } else if (window.attachEvent) { 
      window.attachEvent('onload', fixContactListSelection); 
     } 
    </script> 
</head> 

Если однако используется мастер-страницы, и вы не можете найти голову тег, вставить этот <script> с его содержанием в значительной степени в любом месте страницы , Прямо под декларацией DDL должно быть хорошо.

+0

Привет, Андрей, Пробовал делать это, все еще, когда я открываю форму, значение по умолчанию в этом раскрывающемся списке: -Select Contact Method- :-( – Yuri

+0

@Yuri, просто заметили ошибку в моем коде кода, пожалуйста, обновите. см. любые ошибки javascript на странице? – Andrei

+0

@ Andrei, Большое вам спасибо! Вы - звезда, она наконец-то сработала! – Yuri

0

пытаются связать DropDownList как этот

private void PopulateContactMethod(int intContactMethodID) 
    { 
    DataTable dt = new DataTable(); 
      dt = "get Your data from db"; 

      cboContact.DataSource = dt; 
      cboContact.DataTextField = dt.Columns["field to view"].ToString(); 
      cboContact.DataValueField = dt.Columns["id of field to view"].ToString(); 
      cboContact.DataBind(); 
      ListItem li1 = new ListItem("--Select Contact Method--", "0"); 
      cboContact.Items.Insert(0, li1); 
    } 

линии

ListItem li1 = new ListItem("--Select Contact Method--", "0"); 
       cboContact.Items.Insert(0, li1); 

делает "--select Контакт Method--" в качестве значения по умолчанию

+0

То же, что и выше, если это нужно для входа в .aspx.cs, тогда я не могу этого сделать. И я не хочу иметь «--Выбрать метод контакта» - в качестве значения по умолчанию мне нужно «Нет» в качестве значения по умолчанию. Спасибо – Yuri

+0

Вы сказали, что не можете получить доступ к файлу .aspx.csfile? Попробуйте эту ссылку. Он объясняет, как встраивать блоки кода с использованием тегов сервера http://www.aspsnippets.com/Articles/Different-Embedded-Code-Blocks-and- его использование в ASPNet.aspx –

+0

Привет, Sruthi, спасибо за ссылку. Я посмотрел, но я не знаю, как я могу использовать в своем aspx-файле – Yuri

0

Попробуйте добавить после того, как загрузка страницы с использованием javascript или jquery

$("#<%=cboContact.ClientID%>").val("None"); 
+0

Извините, как упоминалось выше. Я новичок в кодировании. Дозировать это в .aspx-файле? Если да, то где? Если он переходит к .aspx.cs, тогда я не могу его отредактировать, поскольку он был скомпилирован в DLL-файл в папке bin – Yuri

+0

. Вы можете добавить это в свой файл .aspx.cs и вызвать метод PopulateContactMethod (int intContactMethodID), откуда вам нужно связать выпадающий список –

+0

У меня нет файла .apx.cs, у меня есть файл .dll – Yuri

0

Пожалуйста, проверьте ниже

MasterValue oMV = new MasterValue(); 
DataTable dt = oMV.GetAll(MasterValueType.ContactMethod); 
//Now you assign specific field name and field id like below 
cboContact.DataSource = dt; 
cboContact.DataTextField = "strText"; 
cboContact.DataValueField = "intID"; 
cboContact.DataBind(); 

Это решит вашу проблему.

Смежные вопросы