Обновить столбец GridView после привязки данных? - PullRequest
1 голос
/ 07 марта 2012

Могу ли я обновить содержимое столбца gridview после привязки данных?Столбец SQL - это полное имя, и мне нужно отобразить его как фамилию, имя, а не фамилию, как сейчас.Я знаю, что я могу сделать это в SQL, но кажется, что это будет немного болезненно ( SQL: анализировать имя, отчество и фамилию из поля полного имени ).Мне просто интересно, есть ли более простой способ сделать это.

Спасибо

Хорошо, я понял это ... извините.В случае, если это кому-то еще нужно, я добавил событие OnRowDataBound="MailingList_RowDataBound", и в этом обработчике событий я собираюсь использовать следующий код (измененный для анализа имени):

public void MailingList_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        // Required to ignore the header/footer.
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            //Get the Person's Name
            string name = e.Row.Cells[0].Text;
            //Add your JavaScript onClick event link.
            e.Row.Attributes.Add("onClick", "LookupEmail('" + name + "')");
            e.Row.Cells[0].Text = "Test";
        }
    }

Изменение«Тест» на правильные значения.

Ответы [ 2 ]

2 голосов
/ 07 марта 2012

используйте itemtemplate

            <asp:GridView ID="tset" runat="server">
               <Columns>
                  <asp:TemplateField HeaderText="Name">
                    <ItemTemplate>
                       <asp:Label ID="label1" runat="server"  Text='<%#GetFormattedName(Eval("full_name")%>'></asp:Label>
                    </ItemTemplate>
                  </asp:TemplateField>
               </Columns>
            </asp:GridView>

и напишите метод GetFormattedName в коде, чтобы вернуть строку, как вы хотите,

    protected string GetFormattedName(string fullName)
    {
          // you can split full name here and swap first name, last name
          // depending on how you store it in DB 
    }
2 голосов
/ 07 марта 2012
<asp:TemplateField HeaderText="Name">
  <ItemTemplate>
    <span>
       <%# Eval("FullName").Split(' ')[0]%>
    </span>
   </ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Surname">
  <ItemTemplate>
    <span>
       <%# Eval("FullName").Split(' ')[1]%>
    </span>
   </ItemTemplate>
</asp:TemplateField>

Это должно решить вашу проблему.Предполагая, что имя столбца FullName в вашей базе данных, а имя и фамилия разделены пробелом, вы можете разделить их и привязать каждое значение к различным столбцам в GridView.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...