Почему мой GridView не заполняется? - PullRequest
0 голосов
/ 09 августа 2011

Заполняется, если я установил автогенерацию в true. Но мне это не нужно.

<asp:GridView runat="server" ID="Gridview2" Visible="true" AutoGenerateColumns="false"></asp:GridView>


protected void submitButton_Click(object sender, EventArgs e)
    {
        Database db = DatabaseFactory.CreateDatabase("ConnectionString");
        DataTable dt = new DataTable();
        DataColumn dc;
        DataSet ds = new DataSet();

        try
        {
            DbCommand dbCommand = db.GetStoredProcCommand("sel_ResultByID_p");
            db.AddInParameter(dbCommand, "@pID", DbType.Int16, _id);
            ds = db.ExecuteDataSet(dbCommand);

            dc = new DataColumn();
            dc.ColumnName = "FullName";
            dt.Columns.Add(dc);

            DataRow dr;
            dr = dt.NewRow();
            dr["FullName"] = ds.Tables[0].Rows[0]["FullName"];

            dt.Rows.Add(dr);

            Gridview2.DataSource = ds;
            Gridview2.DataBind();
        }

        catch(Exception ex)
        {

        }
    }

Ответы [ 3 ]

5 голосов
/ 09 августа 2011

Вы должны установить

AutoGenerateColumns="true"

или укажите столбцы таблицы вида вручную, например:

<asp:GridView runat="server" ID="Gridview2" Visible="true" AutoGenerateColumns="false">
    <Columns>
        <asp:BoundField DataField="FullName" HeaderText="Full Name" />
    </Columns>
</asp:GridView>

Вы ничего не делаете.

Обновление

Вот как это сделать в коде:

BoundField bf = new BoundField();
bf.DataField = "YourFieldName";
bf.HeaderText = "Your Header";
Gridview2.Columns.Add(bf);
0 голосов
/ 09 августа 2011

Если вы отключите автогенерацию столбцов, вы можете указать, какие столбцы вы хотите отобразить, используя шаблоны столбцов

Например.

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
   DataKeyNames="EmployeeID" DataSourceID="ObjectDataSource1"> 
<Columns> 
 <asp:BoundField DataField="LastName" HeaderText="LastName" SortExpression="LastName" />     
 <asp:BoundField DataField="FirstName" HeaderText="FirstName" SortExpression="FirstName" /> 
 <asp:BoundField DataField="Title" HeaderText="Title" SortExpression="Title" />
 <asp:BoundField DataField="HireDate" HeaderText="HireDate" SortExpression="HireDate" /> 
</Columns> 
</asp:GridView>
0 голосов
/ 09 августа 2011

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

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