我有一个我继承的项目。我被要求在网站上的GridView中删除两列,并用另外两列替换它们。我已经更改了html以用新的原始文件替换原件,但是列标题名称似乎不想更改。我在启动调试器的情况下运行代码并在代码c#代码的第一行放下它,然后执行任何操作并检出gridview对象。它已经分配了这些列名称,我无法弄清楚如何。我已经搜索了原始列名,但无法在任何地方找到它们。
基本上,我的问题是在页面真正加载之前控制列的命名是什么?每次我搜索到这一点,我都会让人们想以编程方式对其进行更改,但这似乎不是我能说的问题。我试图像建议here那样进入对象的属性,但它显示的是新字段而不是旧字段。
以下是创建此gridview和对象的相关(我相信)HTML代码。
<asp:GridView ID="gvTopSearch" runat="server" AllowPaging="True"
AllowSorting="True" PageSize="15" AutoGenerateColumns="False"
DataKeyNames="NID,CID" Width="100%" OnPageIndexChanging="gvTopSearch_PageIndexChanging"
OnSorting="gvTopSearch_Sorting"
onrowdatabound="gvTopSearch_RowDataBound"
meta:resourcekey="gvTopSearchResource1" >
<Columns>
<asp:TemplateField SortExpression="NewField1" HeaderText="NewField1"
meta:resourcekey="TemplateFieldResource5">
<ItemTemplate>
<%#Eval("NewField1")%>
</ItemTemplate>
<HeaderStyle Width="75px" />
</asp:TemplateField>
<asp:TemplateField SortExpression="NewField2" HeaderText="NewField2"
meta:resourcekey="TemplateFieldResource6">
<ItemTemplate>
<%#Eval("NewField2")%>
</ItemTemplate>
<HeaderStyle Width="75px" />
</asp:TemplateField>
</Columns>
<AlternatingRowStyle CssClass="fieldName" HorizontalAlign="Left" />
<EmptyDataTemplate>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td align="center" style="padding-top: 50px; padding-bottom: 50px; padding-left: 60px;">
<img src="" alt="" />
<b>
</b>
</td>
</tr>
</table>
</EmptyDataTemplate>
<HeaderStyle CssClass="fieldNamewithbgcolor" HorizontalAlign="Left" />
<PagerStyle CssClass="Paging" />
<RowStyle CssClass="gridbgcolor" HorizontalAlign="Left" />
</asp:GridView>
“NewField1”和“NewField2”应该显示但不是。
答案 0 :(得分:1)
尔加!我讨厌这个愚蠢的项目。我已经找到问题的最终位置(仅需3天左右)。
在同一目录中,显然有一个App_LocalResources文件夹,里面有一个resx文件。在该文件中是键值对,包括在'TemplateFieldResource5'和'TemplaceFieldResource6'上面看到的键值对,它们与旧列名称链接。我已将它们更改为新的列名称,并且它可以正常工作。
感谢那些试图帮助我发表意见的人。如果这是史蒂夫我误解的代码你的意思。