如果取消datagrid属性生成器中的在运行时自动创建列,那么就可以绑定每个列,那么在HTML里多了如下类似代码:
DataSource="<%# Ds_tele1 %>" DataKeyField="tele_id" DataMember="T_B_LPNS_tele" AutoGenerateColumns="False"
<Columns>
<asp:HyperLinkColumn DataNavigateUrlField="tele_id" DataTextField="tele_id" SortExpression="tele_id"
HeaderText="编号"></asp:HyperLinkColumn>
<asp:BoundColumn DataField="tele_name" SortExpression="tele_name" HeaderText="名称"></asp:BoundColumn>
</Columns>
反之如果不用datagrid属性生成器,用代码怎么实现上述绑定功能呢?特别强调DataSource="<%# Ds_tele1 %>"这个地方怎么改???

解决方案 »

  1.   

    <asp:datagrid id="ListDataGrid" runat="server" AutoGenerateColumns="False" PageSize="15" AllowPaging="True" Width="98%" HorizontalAlign="Center" Font-Names="宋体" Font-Size="9pt" CssClass="DataGrid" DataKeyField="id" BorderStyle="Solid" CellPadding="4" BorderColor="#999999" BorderWidth="1px" BackColor="Desktop" ForeColor="Black" AllowSorting="True">
    <SelectedItemStyle Font-Bold="True" ForeColor="White" BackColor="#000099"></SelectedItemStyle>
    <ItemStyle BackColor="White"></ItemStyle>
    <HeaderStyle Font-Size="12px" Font-Names="宋体" Font-Bold="True" HorizontalAlign="Center" ForeColor="Black" VerticalAlign="Middle" BackColor="#9CCFFF"></HeaderStyle>
    <FooterStyle ForeColor="Black" BackColor="White"></FooterStyle>
    <Columns>
    <asp:TemplateColumn>
    <ItemTemplate>
    <img src="../image/ni_dzkw.gif" border="0">
    </ItemTemplate>
    <HeaderStyle Width="5%"></HeaderStyle>
    <ItemStyle HorizontalAlign="center"></ItemStyle>
    </asp:TemplateColumn>
    <asp:HyperLinkColumn SortExpression="title" DataNavigateUrlField="id" DataNavigateUrlFormatString="javascript:var win = window.open( 'view.aspx?id={0}', '_blank', 'scrollbars=yes, width=600, height=480' );" DataTextField="title" HeaderText="标题">
    <HeaderStyle Width="45%"></HeaderStyle>
    <ItemStyle HorizontalAlign="Left"></ItemStyle>
    </asp:HyperLinkColumn>
    <asp:BoundColumn DataField="qkh" SortExpression="qkh" HeaderText="期刊号">
    <HeaderStyle Width="10%"></HeaderStyle>
    <ItemStyle HorizontalAlign="center"></ItemStyle>
    </asp:BoundColumn>
    <asp:BoundColumn SortExpression="fbsj" DataField="fbsj" HeaderText="发布日期" DataFormatString="{0:d}">
    <HeaderStyle Width="15%"></HeaderStyle>
    <ItemStyle HorizontalAlign="center"></ItemStyle>
    </asp:BoundColumn>
    <asp:BoundColumn SortExpression="ksid" DataField="ksname" HeaderText="发布科室" HeaderStyle-HorizontalAlign="left">
    <HeaderStyle Width="20%"></HeaderStyle>
    <ItemStyle HorizontalAlign="Left"></ItemStyle>
    </asp:BoundColumn>
    <asp:TemplateColumn HeaderText="归档">
    <ItemTemplate>
    <asp:CheckBox id="CheckID" runat="server"></asp:CheckBox>
    </ItemTemplate>
    <HeaderStyle Width="5%"></HeaderStyle>
    <ItemStyle HorizontalAlign="center"></ItemStyle>
    </asp:TemplateColumn>
    </Columns>
    </asp:datagrid>///////然后在后置代码中 ListSql = "SELECT dzkw.id, dzkw.title, dzkw.qkh, dzkw.fbsj, dzkw.ksid, ks.ksname FROM dzkw, ks WHERE ( ( dzkw.title LIKE '%"+strTitle+"%' ) AND ( nvl( dzkw.fbsj, '0000-00-00' ) >= '"+strFbsj+"' ) AND ( nvl( dzkw.fbsj, '0000-00-00' ) <= '"+strFbsjEnd+"' ) ) AND ( dzkw.ksid = ks.id ) AND ( dzkw.bscid = "+ bscid +" ) AND ( dzkw.ifgd = '0' ) ORDER BY id DESC";
    if ( conn.GetRowCount( ListSql ) > 0 )
    {
    ListDataGrid.DataSource = conn.CreateDataSource( ListSql );
    ListDataGrid.DataBind();