1. C# / Говнокод #16632

    +133

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    //You can assign Values to the ASPNET RadioButton like this way:
    protected void Page_Load(object sender, EventArgs e)
     {
             RadioButton1.Attributes.Add("value", "ASPNET");
    } 
    
    //Then you can access the value this way:
    protected void Button1_Click(object sender, EventArgs e)
     {
             Response.Write(RadioButton1.Attributes["value"].ToString());
    }

    сегодня для меня стало новостью, что у высокоуровневого контрола asp.net web form RadioButton, который по сути рендерится в <input type="radio">, нет атрибута value.
    http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.radiobutton(v= vs.110).aspx да, его нет.
    но сначала я подумал, что все же может это я кривой и не туда смотрю, а потом нахожу велосипед, который предлагает MVP http://forums.asp.net/t/1379187.aspx?Why+does+an+ASP+NET+RadioBu tton+control+not+have+a+property+to+prog ramatically+set+the+value+attribute+

    Запостил: Lokich, 02 Сентября 2014

    Комментарии (2) RSS

    • И накуя?
      Ответить
      • что накуя? накуя Value?
        ок, представим
        <input type="radio" name="sex" value="male">Male<br>
        <input type="radio" name="sex" value="female">Female

        когда делаем sumbit браузер передает все input элементы формы, и в случае с radio он берет значение элемента из группы, и передает его значение. в данном случае может быть sex=male или sex=female.
        соответственно, добавил несколько радиобатанов на страницу, присвоил им значение, пользователь "клац-клац" и передает нужно.
        в случае же с ASP.NET WebForms это не так. он передает тот элемент, который был отмечен, и чтобы понять какой именно, я должен все их перебрать, и выбрать тот, у которого Checked == true;
        и опять же, чтобы получить мне value, который нужен, я должен руками перед тем, как страница рендерится пользователю руками в коде (не в разметке, как у нормальных потсанов) сначала добавить value, а уже потом, после срабатывания события прочитать аттрибут value у этого радиобатана.
        если говорить например о ASP.NET MVC, но я просто пишу контроллер , у которого
        public ActionResult someMethod (string sex) {
        ....
        }

        и просто работать с тем, что пользователь выбрал.
        Ответить

    Добавить комментарий