Нужно ли привязывать данные в gridview? - PullRequest
0 голосов
/ 26 августа 2011
 If dt_grid.Rows.Count > 0 Then
        dt_grid.DataSource = dt_grid
 Else
        MessageBox.Show("Not Found Data")
 End If  

Я знаю, что если получит данные в gridview.datasource, напишите gridview.Databind. Но я нашел код моего друга. Он записывает данные только в gridview.datasource, но не записывает gridview.dataBind. Поэтому его кодирование не является ошибкой. Зачем? Не нужно dataBind?

1 Ответ

0 голосов
/ 26 августа 2011

Вы уверены, что ваш друг не использует свойство DataSourceID?

В этом отличие от MSDN:

Когда установлено свойство DataSourceID (вместо свойства DataSource)элемент управления с привязкой к данным автоматически связывается с элементом управления источником данных во время выполнения.

Пожалуйста, ознакомьтесь с этой статьей и с этой.

Надеюсь, это помогло.

Я нашел время, чтобы сделать небольшой пример, чтобы продемонстрировать, что вам нужно вызывать DataBind () для обычного вида сетки asp.net для визуализации его данных.*

Если ваш друг не вызывает этого, я предполагаю, что он связывает сетку с источником данных в коде .aspx (с источником данных SQLD, даже с объектом ObjectDataSource), и он изменяет этот источник данных в коде.

Пожалуйста, взгляните на следующий пример:

Страница default.aspx:

<%@ Page Title="Home Page" Language="C#" AutoEventWireup="true" 
    CodeBehind="Default.aspx.cs" Inherits="GridViewDemo._Default" %>

<form id="form1" runat="server">
<asp:gridview id="GridView1" runat="server">
    <Columns>
        <asp:BoundField DataField="ID" />
        <asp:BoundField DataField="Name" />
    </Columns>
</asp:gridview>
</form>

Код для страницы: (это на C #, но я думаю,это относится и к VB)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace GridViewDemo
{
    public partial class _Default : System.Web.UI.Page
    {
        public class Entity
        {
            public int ID { get; set; }
            public string Name { get; set; }
        }

        protected void Page_Load(object sender, EventArgs e)
        {
            List<Entity> source = new List<Entity>() { new Entity() { ID = 1, Name = "First" }, new Entity() { ID = 2, Name = "Second" } };
            GridView1.DataSource = source;
            GridView1.DataBind(); 
            // if you comment this line and run, the gridview is not rendered
        }


    }
}

Дайте мне знать, если это ответило на ваш вопрос.

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