Member 8583441 Ответов: 1

Как получить значения массива в ASP.NET скрытое поле и вернуть обратно эти значения в код позади


я получаю значения массива в asp.net скрытое поле в javascript но последнее значение дается в коде позади может ли кто нибудь сказать мне решение этой проблемы

Что я уже пробовал:

let optionSelected = Array.from(document.getElementsByName('options' + i)).find(r => r.checked).value;
var hdnRadioButtonSelectedOption = document.getElementById("hdnRadioButtonSelectedValue");
hdnRadioButtonSelectedOption.value = optionSelected;
alert(hdnRadioButtonSelectedOption.value);

Ehsan Sajjad

как это выглядит в визуализированном html ?

Member 8583441

string strSelected = hdnRadioButtonSelectedValue.Ценность;

Nitin S

можете ли вы создать скрипку из того, что вы сделали?

Member 8583441

https://jsfiddle.net/pkalyan/jpr9gq04/1/

Prifti Constantine

Я бы рекомендовал сериализовать данные массива , хранить их внутри hiddenControl.Value
а затем Десериализуйте его, возвращая его в код позади.

1 Ответов

Рейтинг:
7

Prifti Constantine

Довольно обобщенно в соответствии с вашим данным кодом, но я надеюсь, что это поможет вам!

<pre lang="c#">string[] newArray = new string[2];
            string SerializedData = Newtonsoft.Json.JsonConvert.SerializeObject(newArray);
            //The serialized Array will have a Json format and it will be stored inside the hidden COntrol Value
            HiddenCOntrol.value = SerializedData;
            //you can get the Serialized Data from the hidden control Accordingly by desirializing it to your specified object:
            string[] DesirializedData = (string[])Newtonsoft.Json.JsonConvert.DeserializeObject(HiddenControl.Value);


Member 8583441

в этом решении javascript не представлен

Prifti Constantine

Если указанный элемент управления существует, то зачем вам нужен javascript? Не могли бы вы объяснить свой образ мыслей? может быть, вы хотите отправить его через ajax? Может быть, создать __doPostback ()?

Member 8583441

почему я сдаю javascript, потому что я делаю онлайн-экзамен, в котором страница экзамена разработана в коде позади. для этого мне понадобились значения переключателя, который проверяет, что значения хранят скрытые поля с помощью javascript. Но эти значения отражаются обратно в код позади, когда вы нажимаете кнопку. Только последнее значение отправляется в код, который мне не нужен. Когда я нажимаю кнопку Готово, мне требуются все значения из javascript в код позади. как этого добиться

Prifti Constantine

Если radioButton имеет тег "runat='server'", то вы можете просто получить управляющее значение в коде позади, введя его идентификатор.
если у вас есть в <как ASP:HiddenField значение runat="сервер" идентификатор="HiddenControlName" /&ГТ; или переключателя , контроль типов не имеют значения, если атрибут runat=сервер тег включен, то вы можете использовать строку hiddenValue = HiddenControlName.значение.Метод toString();

Либо это, либо еще какой-то код необходим для решения вашей проблемы.

Member 8583441

Да сэр но эти переключатели взяты из string builder который не требует runat=server потому что я использовал HTML input type radio
А) {2}

Member 8583441

<tr><td class='col-12'><input type='radio' id='rb1{0}' name='options{0}' value='A' /> A) <label for='rb1{0}' id='lblChoiceA{0}'>{2}</label></td></tr>

Prifti Constantine

Итак, вы говорите, что эти переключатели создаются динамически из кода позади. Вероятно, вы должны повторить массив данных, чтобы получить из него каждое значение.. Постройте другой массив, поместите проверенные значения внутрь, а затем Сериализуйте массив и поместите его внутрь скрытого элемента управления. Когда это будет сделано , вы можете получить сериализованный массив в коде позади, десериализовать его в нужный объект (массив строк в этой ситуации), а затем вы можете повторить массив, чтобы получить нужные значения. Надеюсь, это поможет...

Member 8583441

супер сэр объяснение но можете ли вы дать решение с помощью этого утверждения

Prifti Constantine

Если у вас уже есть массив и нужные значения, то вы можете использовать:
Сериализация Данных:
ВАР Wantedfields = массив.serializeArray();
hidenControl.value = Wantedfields;

В коде позади этого вы можете десериализовать hidenCOntrol.Value через сериализатор javascript.

Member 8583441

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

Prifti Constantine

Никаких проблем! Если бы вы могли отметить как ответ, это было бы потрясающе! Заботиться