试图弄清楚为什么我有越来越GridView1数据绑定GridView控件绑定问题
HTML的一个问题:
<asp:GridView ID="GridView1" runat="server" AllowSorting="True"
AutoGenerateColumns="False" DataSourceID="SqlDataSource1"
CellPadding="10" RowStyle-VerticalAlign="Top"
BackColor="White" BorderColor="Black" BorderWidth="1px" OnRowCreated="GridView1_RowDataBound"
Width="100%" AllowPaging="true" BorderStyle="Solid" PagerSettings-Position="TopAndBottom">
<Columns>
<asp:TemplateField HeaderText="Last" >
<ItemStyle VerticalAlign="Top" />
<ItemTemplate>
<%#Eval("Last")%>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="First" >
<ItemStyle VerticalAlign="Top" />
<ItemTemplate>
<%#Eval("First")%>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Supervisor ID" >
<ItemStyle VerticalAlign="Top" />
<ItemTemplate>
<%#Eval("supervisorId")%>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
代码隐藏:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
// EdT: if there is no value in session["userId"], redirect user to login page
if ((HttpContext.Current.Session["userId"]) == null)
{
Response.Redirect("Default.aspx");
}
else
{
userName = SqlHelperClass.GetUserName((int)HttpContext.Current.Session["userId"]);
timeCard = new TimeCard((int)HttpContext.Current.Session["userId"], GetCurrentPayPeriod());
// EdT: Set value of literal
Literal1.Text = userName;
// EdT: Set default values for SelectParameters
string userId = HttpContext.Current.Session["userId"].ToString();
string pped = Convert.ToString(GetCurrentPayPeriod());
SqlDataSource1.SelectParameters["user"].DefaultValue = userId;
SqlDataSource1.SelectParameters["pped"].DefaultValue = pped;
}
}
}
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
// set value of dropdown list in GridView Row to the value contained in the timecard DataTable
if (e.Row.RowType == DataControlRowType.DataRow)
{
string dropDownListValue = CurrentTimeCard.TimeCardDataTable.Columns["projectName"].ToString();
DropDownList dropDownList = (DropDownList)e.Row.FindControl("DropDownList1");
dropDownList.DataSource = SqlDataSource2;
dropDownList.SelectedValue = dropDownListValue;
}
}
SqlDataSource1标记:
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:MinnsTimeDatabase %>"
SelectCommand="spGetTimeCard" SelectCommandType="StoredProcedure" >
<SelectParameters>
<asp:Parameter Name="user" Type="Int32" />
<asp:Parameter DbType="Date" Name="pped" />
</SelectParameters>
</asp:SqlDataSource>
任何想法赞赏
SqlDataSource1的标记在哪里? – mason
在你asp:gridview你引用sqldatasource1,但我没有看到你实际填充数据库中的数据。 iguess这不是问题,但在下面的函数'dropdownlist.datasource =“一个字符串?”'也许你的意思是'DataSourceID'或者你可以删除引号。 – RadioSpace
已发布DatSource标记编辑原始帖子 – deadEddie