Получить значение из скрытого граничного поля? ASP.NET

Я знаю, что вопрос, который я собираюсь задать, уже задан другими людьми, но эти ответы не решают мою проблему.

У меня есть gridview, содержащий 2 BoundFields, 2 ButtonFields и поле флажка (, которое является TemplateField).

У меня также есть datatable, заполненный данными из базы данных.

В коде aspx я создаю свой gridview с полями, установленными последним BoundField Visible = false.

В отделенном коде я добавляю столбцы и привязываю источник данных к моей таблице данных.

Но когда я пытаюсь прочитать данные из скрытого связанного поля, это поле оказывается пустым. Проблема, почему я не могу использовать решения, упомянутые с подобными вопросами, заключается в том, что люди предполагают, что данные заполняются один за другим, а не путем привязки таблицы данных к источнику данных gridview.

Итак, мой вопрос: :Есть ли у них способ получить данные из скрытого связанного поля, а также сохранить возможность добавления данных путем привязки таблицы данных к источнику данных gridview? И если да, то можно ли получить значение из этого поля?

п.с. Я использую asp.net/c#в Visual Studio 2010

ASPX:

<asp:GridView ID="gvSelect" runat="server" AutoGenerateColumns="False" BorderStyle="None" onrowcommand="gvTestSelect_RowCommand">
    <Columns>
        <asp:TemplateField>
            <HeaderTemplate>
                <asp:CheckBox runat="server" ID="cbHeader" OnPreRender="cbHeader_PreRender" />
            </HeaderTemplate>
            <ItemTemplate>
                <asp:CheckBox runat="server" ID="cbItems" />
            </ItemTemplate>
        </asp:TemplateField>
        <asp:BoundField DataField="field" HeaderText="Veld" SortExpression="field" />
        <asp:ButtonField DataTextField="up" HeaderText="Omhoog" SortExpression="up" CommandName="up" Text="&uarr;" />
        <asp:ButtonField DataTextField="down" HeaderText="Omlaag" SortExpression="down" CommandName="down" Text="&darr;" />
        <asp:BoundField DataField="hidden" SortExpression="hidden" />
    </Columns>
</asp:GridView>

Code Behind (, где я заполняю gridview):

//create array list and fill it with all columns
Dictionary<string, string> dict = FillLists.getColumnsByTable(loader, ddlInfoTableI.SelectedItem.Value.ToString());

//loop trough dictionary
foreach (var val in dict)
{
    //create new dtSelect datarow
    DataRow dr = dtSelect.NewRow();

    //set row values for column values
    dr["select"] = false;
    dr["field"] = val.Value.ToString();
    dr["up"] = new ButtonField { CommandName = "up", Text = loader.LoadResourceString(1024), HeaderText = "&uarr;", ButtonType = ButtonType.Button, Visible = true };
    dr["down"] = new ButtonField { CommandName = "down", Text = loader.LoadResourceString(1025), HeaderText = "&darr;", ButtonType = ButtonType.Button, Visible = true };
    dr["hidden"] = val.Key.ToString();

    //add the datarow
    dtSelect.Rows.Add(dr);

    //set datatable session to datatable
    Session["dtSelect"] = dtSelect;

    //set datasource of the gridview to datatable
    gvSelect.DataSource = dtSelect;

    //bind data to gridview
    gvSelect.DataBind();
}

Итак, теперь мне нужно получить данные из gridview (особенно из скрытого связанного поля ), потому что они могут редактировать вид сетки, кроме скрытого связанного поля, так что это единственный способ узнать, какая это была исходная строка.

9
задан Mike Guthrie 5 April 2012 в 17:59
поделиться