1

私は継承したプロジェクトを持っています。Web サイトの GridView で 2 つの列を削除し、他の 2 つの列に置き換えるように依頼されました。元のものを新しいものに置き換えるためにhtmlを変更しましたが、列ヘッダーの名前は変更したくないようです。デバッガーをオンにしてコードを実行し、何かを実行する前にコード c# コードの最初の行にブレークを配置し、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」が表示されるはずですが、表示されません。

4

1 に答える 1

1

ガッ!私はこのばかげたプロジェクトが嫌いです。問題が最終的にどこにあるかがわかりました (約 3 日しかかかりません)。

同じディレクトリに、明らかに resx ファイルを含む App_LocalResources フォルダーがあります。そのファイルには、「TemplateFieldResource5」および「TemplaceFieldResource6」の上に見られるものを含むキーと値のペアがあり、それらは古い列名にリンクされていました。それらを新しい列名に変更しましたが、機能します。

あなたのコメントで私を助けようとした人々に感謝します。これがスティーブの背後にあるコードの意味である場合、私は誤解しました。

于 2012-10-26T14:58:32.070 に答える