我用了DataGrid控件,对于每一列都是用类似这样,一列一列绑定的.
BoundColumn colSurveyName = new BoundColumn();
colSurveyName.DataField = "survey_title";
colSurveyName.HeaderText = "SurveyTitle";
this.dgSurveyList.Columns.Add(colSurveyName);
现在我加了一个模版列,
<Columns>
<asp:TemplateColumn HeaderText="审核" >
<ItemTemplate>
<asp:DropDownList ID="chk" Runat="server"></asp:DropDownList >
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
问题有两个:
1.在页面加载的时候,DataGrid中绑定的列都可以将数据自动的显示出来,可是模版列显示的数据也应该是从数据库中读出来的啊,而不是默认的值,应该如何去做?
2.这个是小问题,就是模版这一列,在所有列的前面,如果控制这个模版列显示的位置??比如让他在最后一列显示?
10 个解决方案
#1
<Columns>
<asp:TemplateField>
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "数据库中对应的列名").ToString().Trim%>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<asp:TemplateField>
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "数据库中对应的列名").ToString().Trim%>
</ItemTemplate>
</asp:TemplateField>
</Columns>
#2
(1)GridView可以从模板列绑定一个数据,DataGrid是不行的,需要在DataItemBound事件中自己赋值。
(2)在Column属性中,打开那个对话框,最右边的列表中是显示顺序,再右边有上下箭头,可以调整顺序。
(2)在Column属性中,打开那个对话框,最右边的列表中是显示顺序,再右边有上下箭头,可以调整顺序。
#3
可以在模板列中放一个label,然后在label上绑定数据啊。
#4
OK,各位老大,我先试试啊,晚点再结分...
#5
protected void dgInfo_ItemDataBound(object sender, DataGridItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
switch(e.Item.Cells[6].Text)
{
case "0": e.Item.Cells[5].Text = "不同意"; break;
case "1": e.Item.Cells[5].Text = "同意"; break;
case "2": e.Item.Cells[5].Text = "审批中"; break;
case "3": e.Item.Cells[5].Text = "未审批"; break;
}
}
}
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
switch(e.Item.Cells[6].Text)
{
case "0": e.Item.Cells[5].Text = "不同意"; break;
case "1": e.Item.Cells[5].Text = "同意"; break;
case "2": e.Item.Cells[5].Text = "审批中"; break;
case "3": e.Item.Cells[5].Text = "未审批"; break;
}
}
}
#6
5楼的,我的意思是
DropDownList里面的选项不是???我要让这个DropDownList默认的选项是从数据库里面读出来的那个值....
可以做到吗??
DropDownList里面的选项不是???我要让这个DropDownList默认的选项是从数据库里面读出来的那个值....
可以做到吗??
#7
label和DropDownList处理方式一样的
#8
<asp:DropDownList .....SelectedValue='<%#Eval("ColumnName")%>'/>
#9
第一个问题1楼的正解!!
<asp:DataGrid id="DataGrid1" style="Z-INDEX: 102; LEFT: 184px; POSITION: absolute; TOP: 280px"
runat="server" AutoGenerateColumns="False">
<Columns>
<asp:TemplateColumn HeaderText="3">
<ItemTemplate>
<asp:Label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.333") %>'>
</asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="111" HeaderText="1"></asp:BoundColumn>
<asp:BoundColumn DataField="222" HeaderText="2"></asp:BoundColumn>
</Columns>
</asp:DataGrid>
<asp:DataGrid id="DataGrid1" style="Z-INDEX: 102; LEFT: 184px; POSITION: absolute; TOP: 280px"
runat="server" AutoGenerateColumns="False">
<Columns>
<asp:TemplateColumn HeaderText="3">
<ItemTemplate>
<asp:Label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.333") %>'>
</asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="111" HeaderText="1"></asp:BoundColumn>
<asp:BoundColumn DataField="222" HeaderText="2"></asp:BoundColumn>
</Columns>
</asp:DataGrid>
#10
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
DropDownList ddl = (DropDownList)e.item.Findcounrol("DropDownList1");
DropDownList.Item.Insert("你的数据库字段值");
DropDownList.Item.Selectvalue=你的数据库字段值.
}
{
DropDownList ddl = (DropDownList)e.item.Findcounrol("DropDownList1");
DropDownList.Item.Insert("你的数据库字段值");
DropDownList.Item.Selectvalue=你的数据库字段值.
}
#1
<Columns>
<asp:TemplateField>
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "数据库中对应的列名").ToString().Trim%>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<asp:TemplateField>
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "数据库中对应的列名").ToString().Trim%>
</ItemTemplate>
</asp:TemplateField>
</Columns>
#2
(1)GridView可以从模板列绑定一个数据,DataGrid是不行的,需要在DataItemBound事件中自己赋值。
(2)在Column属性中,打开那个对话框,最右边的列表中是显示顺序,再右边有上下箭头,可以调整顺序。
(2)在Column属性中,打开那个对话框,最右边的列表中是显示顺序,再右边有上下箭头,可以调整顺序。
#3
可以在模板列中放一个label,然后在label上绑定数据啊。
#4
OK,各位老大,我先试试啊,晚点再结分...
#5
protected void dgInfo_ItemDataBound(object sender, DataGridItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
switch(e.Item.Cells[6].Text)
{
case "0": e.Item.Cells[5].Text = "不同意"; break;
case "1": e.Item.Cells[5].Text = "同意"; break;
case "2": e.Item.Cells[5].Text = "审批中"; break;
case "3": e.Item.Cells[5].Text = "未审批"; break;
}
}
}
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
switch(e.Item.Cells[6].Text)
{
case "0": e.Item.Cells[5].Text = "不同意"; break;
case "1": e.Item.Cells[5].Text = "同意"; break;
case "2": e.Item.Cells[5].Text = "审批中"; break;
case "3": e.Item.Cells[5].Text = "未审批"; break;
}
}
}
#6
5楼的,我的意思是
DropDownList里面的选项不是???我要让这个DropDownList默认的选项是从数据库里面读出来的那个值....
可以做到吗??
DropDownList里面的选项不是???我要让这个DropDownList默认的选项是从数据库里面读出来的那个值....
可以做到吗??
#7
label和DropDownList处理方式一样的
#8
<asp:DropDownList .....SelectedValue='<%#Eval("ColumnName")%>'/>
#9
第一个问题1楼的正解!!
<asp:DataGrid id="DataGrid1" style="Z-INDEX: 102; LEFT: 184px; POSITION: absolute; TOP: 280px"
runat="server" AutoGenerateColumns="False">
<Columns>
<asp:TemplateColumn HeaderText="3">
<ItemTemplate>
<asp:Label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.333") %>'>
</asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="111" HeaderText="1"></asp:BoundColumn>
<asp:BoundColumn DataField="222" HeaderText="2"></asp:BoundColumn>
</Columns>
</asp:DataGrid>
<asp:DataGrid id="DataGrid1" style="Z-INDEX: 102; LEFT: 184px; POSITION: absolute; TOP: 280px"
runat="server" AutoGenerateColumns="False">
<Columns>
<asp:TemplateColumn HeaderText="3">
<ItemTemplate>
<asp:Label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.333") %>'>
</asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="111" HeaderText="1"></asp:BoundColumn>
<asp:BoundColumn DataField="222" HeaderText="2"></asp:BoundColumn>
</Columns>
</asp:DataGrid>
#10
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
DropDownList ddl = (DropDownList)e.item.Findcounrol("DropDownList1");
DropDownList.Item.Insert("你的数据库字段值");
DropDownList.Item.Selectvalue=你的数据库字段值.
}
{
DropDownList ddl = (DropDownList)e.item.Findcounrol("DropDownList1");
DropDownList.Item.Insert("你的数据库字段值");
DropDownList.Item.Selectvalue=你的数据库字段值.
}