我是初学者,我希望可以改变下拉列表中的选项后,gridview显示不同表中的内容,如何实现?不同的表字段不同,BoundField写死的话肯定不行,不知道gridview中能否在后台里操作BoundField?
我现在希望可以像操作datatable那样给gridview添加行,可行吗?或者我的要求怎么才能实现呢?
我现在希望可以像操作datatable那样给gridview添加行,可行吗?或者我的要求怎么才能实现呢?
解决方案 »
- 关于gridview 中控制字数的问题
- 急求、。。。版本问题
- 服务器端校验中使用AjaxControlToolkit中的ValidatorCalloutExtender的问题,AjaxControlToolkit高手请进!
- form验证,css文件为什么和master page一起不好用
- .net 1.1 使用ajaxpro 老出错 急啊
- 关于数组循环比较问题求解。
- 关于FREETEXTBOX的文件上传问题
- 急,为什么asp.net的程序在iis5隔离模式下会出错
- winform ListView Group展开和收缩
- 简单问题请大家多多参与!!!!!!!!!!!!
- 回发或回调参数无效
- 第三方控件中的嵌入资源无法提取出来,紧急求解!
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:GDMSConnectionString %>"
SelectCommand="SELECT * FROM [class]"></asp:SqlDataSource>
</div>
<asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:GDMSConnectionString %>"
SelectCommand="SELECT * FROM [student] WHERE ([stu_class] = @stu_class)">
<SelectParameters>
<asp:ControlParameter ControlID="DropDownList1" Name="stu_class" PropertyName="SelectedValue"
Type="String" />
</SelectParameters>
</asp:SqlDataSource>
<asp:DropDownList ID="DropDownList1" runat="server" AppendDataBoundItems="True" AutoPostBack="True"
DataSourceID="SqlDataSource1" DataTextField="class" DataValueField="class">
</asp:DropDownList>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="stu_id"
DataSourceID="SqlDataSource2">
<Columns>
<asp:BoundField DataField="stu_id" HeaderText="stu_id" ReadOnly="True" SortExpression="stu_id" />
<asp:BoundField DataField="stu_name" HeaderText="stu_name" SortExpression="stu_name" />
<asp:BoundField DataField="stu_class" HeaderText="stu_class" SortExpression="stu_class" />
<asp:BoundField DataField="sex" HeaderText="sex" SortExpression="sex" />
<asp:BoundField DataField="imgurl" HeaderText="imgurl" SortExpression="imgurl" />
</Columns>
</asp:GridView>
</form>
</body>
</html>
<connectionStrings>
<add name="NorthwindConnectionString" connectionString="Data Source=.\sqlexpress;Initial Catalog=Northwind;Integrated Security=True" providerName="System.Data.SqlClient"/>
</connectionStrings>前台(注意,这里的GridView必须是EnableViewState="false"):<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
<asp:ListItem Value="Product表">Product表</asp:ListItem>
<asp:ListItem Value="Suppliers表")>Suppliers表</asp:ListItem>
</asp:DropDownList>
<asp:GridView ID="GridView1" runat="server" EnableViewState="false">
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"></asp:SqlDataSource>
后台:protected void Page_Load(object sender, EventArgs e)
{
for (int i = 0; i < GridView1.Columns.Count; i++)
GridView1.Columns.RemoveAt(i); if (DropDownList1.SelectedValue == "Product表")
{
BoundField productID = new BoundField();
productID.DataField = "ProductID";
productID.HeaderText = "Product ID";
GridView1.Columns.Add(productID); BoundField productName = new BoundField();
productName.DataField = "ProductName";
productName.HeaderText = "产品名称";
GridView1.Columns.Add(productName); SqlDataSource1.ConnectionString = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString;
SqlDataSource1.SelectCommand = "select ProductID, ProductName from Products";
GridView1.DataSourceID = SqlDataSource1.ID;
GridView1.AutoGenerateColumns = false;
}
else
{
BoundField supplierID = new BoundField();
supplierID.DataField = "SupplierID";
supplierID.HeaderText = "Supplier ID";
GridView1.Columns.Add(supplierID); BoundField companyName = new BoundField();
companyName.DataField = "CompanyName";
companyName.HeaderText = "公司名";
GridView1.Columns.Add(companyName);
SqlDataSource1.ConnectionString = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString;
SqlDataSource1.SelectCommand = "select SupplierID, CompanyName from Suppliers";
GridView1.DataSourceID = SqlDataSource1.ID;
GridView1.AutoGenerateColumns = false; }
}
<asp:ListItem Value="Product表">Product表</asp:ListItem>
<asp:ListItem Value="Suppliers表">Suppliers表</asp:ListItem>
</asp:DropDownList>
<asp:GridView ID="GridView1" runat="server" EnableViewState="false">
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"></asp:SqlDataSource>
apply_id.DataField = "apply_id"
apply_id.HeaderText = "身份证号码"
GridView1.Columns.Add(apply_id) Dim job As New BoundField()
job.DataField = "scholor_name"
job.HeaderText = "申请工作"
GridView1.Columns.Add(job)
Dim objDataSet As New DataSet
Dim objCon As OleDbConnection
Dim objDataAdapter As OleDbDataAdapter
Dim strDbCon, strSQL As String ' OLEDB提供者字串
strDbCon = conStr
' 建立Connection对象
objCon = New OleDbConnection(strDbCon)
strSQL = "SELECT * FROM [financing].[dbo].[scholar_social] "
' 建立DataAdapter对象
objDataAdapter = New OleDbDataAdapter(strSQL, objCon)
' 建立CommandBuilder对象产生DataAdapter的SQL命令
Dim objCmdBuilder As OleDbCommandBuilder = _
New OleDbCommandBuilder(objDataAdapter) ' 将取得的记录数据填入DataSet对象
objDataAdapter.Fill(objDataSet, "S") Me.GridView1.DataSource = objDataSet.Tables("S").DefaultView
GridView1.AutoGenerateColumns = False
Me.GridView1.DataBind()
End If