GrindView DynamicField DataField

时间:2015-10-02 14:38:53

标签: c# asp.net gridview

我有一个包含以下数据字段的Gridview

</asp:TemplateField>
    <asp:DynamicField DataField="FullName" HeaderText=" Full Name" />
    <asp:DynamicField DataField="Gender" />
    <asp:DynamicField DataField="Race" />
    <asp:DynamicField DataField="DOB" DataFormatString="{0:d}" />
    <asp:DynamicField DataField="Age" />
    <asp:DynamicField DataField="FoundFullName" HeaderText="Found Name" />
    <asp:DynamicField DataField="FoundGender" HeaderText="F_Gender" />
    <asp:DynamicField DataField="FoundRace" HeaderText="F_Race" />
    <asp:DynamicField DataField="FoundDOB" HeaderText="F_DOB" DataFormatString="{0:d}" />
    <asp:DynamicField DataField="Age" HeaderText="F_Age" />
    <asp:DynamicField DataField="C_Similarity" HeaderText="Similarity" HtmlEncode="false" DataFormatString="{0:P2}" />
    <asp:DynamicField DataField="SubjectId" HeaderText="SubjectID #" Visible="false" />
    <asp:DynamicField DataField="JacketNumber" HeaderText="JacketNumber #" Visible="false" />
    <asp:TemplateField HeaderText="Get">
<ItemTemplate>

我需要从

中删除重复的名称
<asp:DynamicField DataField="FullName" HeaderText=" Full Name" />

使用我在这里找到的代码。

string oldValue = string.Empty;
string newValue = string.Empty;
int j = 1;

for (int count = 0; count < GridViewSubjectList.Rows.Count; count++)
{
    oldValue = GridViewSubjectList.Rows[count].Cells[j].Text;
    if (oldValue == newValue)
    {
        GridViewSubjectList.Rows[count].Cells[j].Text = string.Empty;
    }
    newValue = oldValue;
}

此代码会删除“全名”列中的所有姓名。在调试时,我看到来自单元格的所有.Text值都是空字符串。因此更多的研究表明,由于单元格在模板中,我需要修改代码并使用.FindControl(“controlID”)来获取数据字段的值。所以我尝试修改代码,但是在查找FullName数据字段的controlID时遇到了问题。

我发现的所有示例都在gridview中使用标签,并使用标签ID作为控件ID,这对我不起作用。

所以我的问题是DynamicField的控件ID是什么:使用EntityFramework的gridview中的数据字段和用于数据绑定的ItemType =“theTableName”?

由于

2 个答案:

答案 0 :(得分:0)

根据我的理解,您尝试根据名字从数据中删除重复的条目。为什么在将DataSet绑定到Grid之前无法对DataSet进行此过滤?

答案 1 :(得分:0)

问题是我的字段被设置为动态,因为我在受保护的void GridViewSubjectList_DataBound(对象发送者,EventArgs e)方法中调用代码,所以没有绑定字段。我将asp.net字段类型更改为绑定,现在我读取单元格文本的原始代码重新调整数据,我不再需要使用FindContro()。