随着记录的多少而改变每一行的宽度啊?
///////////
<asp:BoundColumn DataField="XXX" SortExpression="XXX" HeaderText="XXX">
<HeaderStyle Width="10%"></HeaderStyle>
<ItemStyle HorizontalAlign="Center"></ItemStyle>没有记录时,我的datagrid会消失,好奇怪哦,该怎么弄啊?
/////////
你可以自己写过空的DataTable来绑定,如: public void ShowNullDataGrid( DataGrid NullDataGrid, string[] DataGridColName )
{
NullDataGrid.Visible = true;
string[] DataGridColNameList = DataGridColName;
DataTable dt = new DataTable();
DataRow dr;
for ( int i = 0; i < DataGridColNameList.Length - 1; i++ )
{
dt.Columns.Add(new DataColumn( DataGridColNameList[i], typeof( string ) ) );
}
for (int i = 1; i <= 10; i++) 
{
dr = dt.NewRow();
for ( int j=0; j < DataGridColNameList.Length - 1; j++ )
{
dr[j] = "";
}
dt.Rows.Add(dr);
}
NullDataGrid.DataSource = new DataView(dt);
NullDataGrid.DataBind();
}
datagrid的每一行可以绑定多个字段么?
///////////////
在ItemDataBound事件里做//假设第一列为超级链接列
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
string ID = "123";
string Name = "user";
if ( ( e.Item.ItemType != ListItemType.Header ) && ( e.Item.ItemType != ListItemType.Footer ) )
{
e.Item.Cells[0].Text = "<a href=" + ( ( HyperLink ) e.Item.Cells[0].Controls[0] ).NavigateUrl + "&ID=" + ID + "&Name=" + Name + ">" + ( ( HyperLink ) e.Item.Cells[0].Controls[0] ).Text + "</a>";
}
}或者<asp:BoundColumn DataField="CSTM_ID" SortExpression="CSTM_ID" HeaderText="CSTM">
<HeaderStyle Width="5%"></HeaderStyle>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
</asp:BoundColumn>
<asp:BoundColumn DataField="ServiceName" SortExpression="ServiceName" HeaderText="业务名称">
<HeaderStyle Width="10%"></HeaderStyle>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
</asp:BoundColumn>
<asp:TemplateColumn>
<ItemTemplate>
<asp:HyperLink id="HyperLink1" NavigateUrl="XXXaspx?ID={0}&&Name={1}">
<%# DataBinder.Eval(Container.DataItem,"CSTM_ID")%>
<%# DataBinder.Eval(Container.DataItem,"ServiceName")%>
</asp:HyperLink>
</ItemTemplate>
</asp:TemplateColumn>

解决方案 »

  1.   

    以上说的很详细了!
    但是datagrid的列,如果是很长的连续的英文,也会被拉得很长,如果是中文,或者有空格时就是自动换行。你要是想要整齐一些,可以先把自符串处理(不如截字符串),然后再显示出来!
    如果你不是自动生成列,没有记录时,也会显示出表头的
      

  2.   

    当没有纪录时,当datagrid.DataSource=null;时她就不显示了,这是你可以生成一个没有数据的dataTable对象给她,总计不要给null给datagrid.DataSource就行了。
    可以用<div class=..>你的内容</div>来做,需要的话给你发样式表
      

  3.   

    <asp:TemplateColumn>
    <ItemTemplate>
    <asp:HyperLink id="HyperLink1" NavigateUrl="XXXaspx?ID={0}&&Name={1}">
    <%# DataBinder.Eval(Container.DataItem,"CSTM_ID")%>
    <%# DataBinder.Eval(Container.DataItem,"ServiceName")%>
    </asp:HyperLink>
    </ItemTemplate>
    </asp:TemplateColumn>////
    编译出错阿,<%# DataBinder.Eval(Container.DataItem,"ServiceName")%〉之间没有分割么?SortExpression属性有什么用?
    我希望得到:http://xxxx.aspx?id=xxx&name=xxx的形式,可以传2个值,我用超级连接项只能邦定1个阿~~~
      

  4.   

    SortExpression属性有什么用?
    排序
      

  5.   

    liuzhonghe(呆头鹅) 把你的样式发给我看看好 么?谢谢你!
    [email protected]
      

  6.   

    在页面上搞一个div..把DATAGRID丢进去,然后将div的overflow:auto
    <DIV style="DISPLAY: inline; Z-INDEX: 153; LEFT: 43px; OVERFLOW: auto; WIDTH: 710px; POSITION: absolute; TOP: 293px; HEIGHT: 94px" ms_positioning="FlowLayout">
      

  7.   

    难道一行绑定多个值,http://xxxx.aspx?id=xxx&name=xxx的形式,通过datagrid中导航兰传出就这么困难呀,哎....
    弄了好久只能http://xxxx.aspx?id=xxx 真郁闷阿~~~~