2014-01-31 3 views
2

Я занимаюсь проблемой, где сайт asp.net/C#, но элементы управления на страницах .aspx являются HTML, и я не уверен, насколько это хорошо если я изменю все на элементы управления asp.net. Также изменение незначительное. Мне было поручено добавить флажок, как в <input type="checkbox" name="disableFeatureManager" runat="server" id="disableFeatureManager" />Disable Feature Manager и на странице .cs. Я хочу проверить, проверен ли флажок и принимать решения на основе этого, но свойство checked проверено всегда false. Кнопка отправки также является HTML-контролем: <input type="submit" value="Start" name="submitButton" />Флажок не работает в asp.net и HTML смешанной странице

В Page_Load ckecking, если такая проверка возвращает false.

if (disableFeatureManager != null && disableFeatureManager.Checked) 
    nextURL.Append(FeatureManagerChoices.CreateQueryStringFromFormData(Request.Form)); 

ответ

0

Как я уже говорил раньше, я был trown в глубокий конец MVC. Co-работник предложил простой ответ (как минимум, в данном случае):

bool isChecked = false; 
if(Request["disableFeatureManager"] != null) 
    isChecked = (Request["disableFeatureManager"].ToLower() == "on"); 

if (!isChecked) 
    nextURL.Append(FeatureManagerChoices.CreateQueryStringFromFormData(Request.Form)); 

Я думаю, что это может быть еще более упрощена до одного IF заявления.

1

Вы можете держать свой флаг в качестве элемента управления сервера Html, выполнив следующие действия:

<input type="checkbox" name="disableFeatureManager" runat="server" id="disableFeatureManager" /> 

Затем вы можете изменить кнопку на веб-управления следующим образом:

<asp:Button ID="submitStart" runat="server" OnClick="btn1_Click" Text="Start" ClientIDMode="Static" /> 

Единственное отличие от вышеописанного HTML - это имя, которое выводится, но у вас будет идентификатор, который равен submitStart, из-за того, что ClientIdMode является статическим, если вам нужен дружественный consis тент Id для обработки javascript.

Для проволоки в случае добавить этот код, который будет считывать значение с флажком:

protected void btn1_Click(object sender, EventArgs e) 
    { 
     var isChecked = disableFeatureManager.Checked; 
    } 

Checked image

+0

Спасибо за ваш вклад. В Page_Load есть объект StringBuilder, который добавляется на основе разных условий, одним из которых является этот вызов FeatureManager, поэтому мне нужно получить значение из флажка в Page_Load. Кроме того, я просто вспомнил, что это приложение MVC 2, и я раньше не работал с MVC. – Risho

+0

@ Ришо О, право. Он не был помечен как вопрос MVC. Можете ли вы предоставить код для представления и действий (-ов), которые связаны с Page_Load? – hutchonoid

+0

Мой плохой, как я уже сказал, мое первое приложение MVC и было брошено в глубокий конец. Полностью забыл. Это огромное решение, и я сделаю все возможное, чтобы опубликовать запрошенный вами код. – Risho

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