数据绑定后更新GridView列

本文关键字:GridView 更新 数据绑定 | 更新日期: 2023-09-27 18:26:53

数据绑定后,我可以更新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";
        }
    }

将"测试"更改为正确的值。

数据绑定后更新GridView列

使用项目模板

            <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 
    }
<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中的不同列。