Как избежать повторения данных в Gridview? - PullRequest
1 голос
/ 29 ноября 2011

В веб-приложении я связываю данные с GridViewGridView некоторые данные повторяются.Я хочу, чтобы данные не отображались снова и снова.

Например, Empid отображает более одного раза в одном столбце.Я не хочу снова отображать empid в этом столбце.

Ответы [ 3 ]

0 голосов
/ 29 ноября 2011

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

Например:

// Create global in your .cs file
string _currentEmpID = string.Empty;

Определите ваш столбец как:

<Columns>
    <asp:TemplateField>
        <ItemTemplate>
            <asp:Literal ID="ltEmpID" runat="server" 
                OnDataBinding="ltEmpID_DataBinding" />
        </ItemTemplate>
    </asp:TemplateField>
    <!-- Your other columns... -->
</Columns>

Тогда просто реализуйте ваше DataBinding событие:

protected void ltEmpID_DataBinding(object sender, System.EventArgs e)
{
    Literal lt = (Literal)(sender);
    string empID = Eval("EmpID").ToString();
    if (!empID.Equals(_currentEmpID))
    {
        lt.Text = empID;
        _currentEmpID = empID;
    }
    else
    {
        lt.Text = string.Empty;
    } 
}

RowDataBound заставляет вас искать элементы управления, и если в будущем потребуются изменения, у вас есть возможность нарушить другие вещи, изменяемые в рамках события. По этой причине я предпочитаю использовать событие DataBinding элемента управления, когда это возможно, поскольку оно локализует функциональность только для элемента управления и дает вам гибкость, позволяющую легко заменять элементы управления и функции, не беспокоясь о влиянии на другие вещи.

0 голосов
/ 04 января 2017

Просто добавьте свойство AutoGenerateColumns в сетку и присвойте ему значение false.

AutoGenerateColumns="false"
0 голосов
/ 29 ноября 2011

Если вы группируете свои данные по столбцам, которые не хотите повторять, прежде чем связывать их с источником данных, вы можете привязать событие к RowDataBound и проверить, равно ли текущее значение предыдущему, а затем скрыть ячейку.1002 * Проверьте это для примера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...