数据绑定后更新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";
}
}
将"测试"更改为正确的值。
使用项目模板
<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
中的不同列。