locked
Русские буквы в URL и объединить ячейки Grid RRS feed

  • Вопрос

  • Здравствуйте!

    Хочу спросить сразу 2 вопроса.

    1. Есть какой-нибудь способ закодировать строку на кириллице и добавить к URL?

    2. У меня есть Grid, поделенный на 4 ячейки. Grid объявляется на C# в файле *.xaml.cs . Можно как-то объединить верхние 2 ячейки?

    Пробовала Grid.SetRowSpan(textBlock1,2); - не работает.


    • Изменено No_Comments 11 декабря 2013 г. 16:18
    11 декабря 2013 г. 16:18

Ответы

  • 1. Используйте
    string result = Uri.EscapeDataString(http://site.com?a=тест)
    2. Не приходилось сталкиваться, но по логике в первом параметре должен быть объект представляющий строку в гриде, а второй параметр количество столбцов для объединения.


    ЗЫ. Кавычки удаляет. в примере кода. Параметр метода - строка с урлом.
    • Изменено V.A.Zolotov 11 декабря 2013 г. 21:12
    • Помечено в качестве ответа No_Comments 13 декабря 2013 г. 10:38
    11 декабря 2013 г. 21:11
  • Зачем тогда дополнительный Grid в верхней части? Просто установите для textBlock-а 2 свойства:

    grid.SetRow(textBlock, 0);

    grid.SetColumnSpan(textblock, 2);

    • Помечено в качестве ответа No_Comments 12 декабря 2013 г. 16:12
    12 декабря 2013 г. 11:58

Все ответы

  • 1. Используйте
    string result = Uri.EscapeDataString(http://site.com?a=тест)
    2. Не приходилось сталкиваться, но по логике в первом параметре должен быть объект представляющий строку в гриде, а второй параметр количество столбцов для объединения.


    ЗЫ. Кавычки удаляет. в примере кода. Параметр метода - строка с урлом.
    • Изменено V.A.Zolotov 11 декабря 2013 г. 21:12
    • Помечено в качестве ответа No_Comments 13 декабря 2013 г. 10:38
    11 декабря 2013 г. 21:11
    1. Все строки в .NET в кодировке Юникод, поэтому могут содержать любые символы. Думаю, что и кодировать ничего не нужно. Пишите как есть.
    2. Разделите Grid не на 4 ячейки, а на 2 строки. В нижнюю вложите еще один Grid, разделенный на 2 колонки.
    12 декабря 2013 г. 10:30
  • Все строки в .NET в кодировке Юникод, поэтому могут содержать любые символы. Думаю, что и кодировать ничего не нужно. Пишите как есть.

    Строки могут. А вот  при передаче параметров get  методом, например VK API, возвращает ошибку в ответе сервера при наличии спец.символов и\или (не помню уже) символов на кирилице(могу даже пример поискать в закромах) . Так что на всякий случай лучше всегда перекодировать.

    Разделите Grid не на 4 ячейки, а на 2 строки. В нижнюю вложите еще один Grid, разделенный на 2 колонки.

    Мне кажется не стоит использовать костыли, когда для решения задачи предусмотрены методы объекта. Зачем дополнительные объекты создавать если есть 1 метод в существующем объекте?

     
    12 декабря 2013 г. 11:15
    1. Спорить не буду, т.к. web-программирвоание - не моя стихия :)
    2. Это всего лишь один из возможных вариантов (которых может быть множество, как и всегда в программировании). Только тогда уж не RowSpan, а ColumnSpan, раз девушка хочет "верхние ячейки" объединить.
    12 декабря 2013 г. 11:37
  • 1.  Я попробую вариант, предложенный в первом ответе. 
    Если писать просто так, то работать не будет. 

    2. У меня не все так просто там. 

    Если нарисовать то, что я хочу сделать, то получается вот так:

    12 декабря 2013 г. 11:47
  • Зачем тогда дополнительный Grid в верхней части? Просто установите для textBlock-а 2 свойства:

    grid.SetRow(textBlock, 0);

    grid.SetColumnSpan(textblock, 2);

    • Помечено в качестве ответа No_Comments 12 декабря 2013 г. 16:12
    12 декабря 2013 г. 11:58
  • 2. У меня есть Grid, поделенный на 4 ячейки. Grid объявляется на C# в файле *.xaml.cs . Можно как-то объединить верхние 2 ячейки?

    Пробовала Grid.SetRowSpan(textBlock1,2); - не работает.


    Извините за возможно глупый вопрос, но - вы уверены, что все объекты на момент вызова этой строки созданы? Просто код то правильный.

    VB.Net - WPF, WinRT, WP

    12 декабря 2013 г. 12:15
  • kosuke904, Спасибо большое! Написала, как Вы мне посоветовали - все работает!

    Не тот метод вызывала! Надо было SetColumnSpan, а я использовала SetRowSpan!!!

    12 декабря 2013 г. 16:12
  • V.A.Zolotov, я правильно понимаю, что переменную result надо передавать в метод в качестве URL?

    Если да, то выскакивает ошибка при использовании ее: 

    Invalid URI: The format of the URI could not be determined.

    Ошибка возникает в строке :

    var uri = new Uri(constr);

    Где, собственно, constr == result из примера.

    12 декабря 2013 г. 16:21
  • Все, я разобралась!

    Надо было применять Uri.EscapeDataString() не ко всей URL, а только к той части, которая содержит русские символы.

    Получилось примерно так:

    public string CreateURL(string str)
    {
    	var _url = @"http://rasp.tpu.ru/view.php?for=";
    	var _ru = Uri.EscapeDataString(str);
    	var URL = _url + _ru;
    	return URL;
    }

    13 декабря 2013 г. 10:38
  • Всем спасибо за помощь!!!
    13 декабря 2013 г. 10:38