我正在使用html来创建数据网格,并且在网格的语法中,我有CausesValidation="True"
但我还是得到了可怕的
无效回发
这是背后的代码,如果需要其他信息,请告诉我,因为我正在解决这个问题。
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Setup();
GetThing1();
GetThing2();
}
}
private void GetThing1()
{
this.gridInfo.Visible = true;
//Run SQL Query to populate datagrid
this.gridInfo.DataSource = DS;
this.gridInfo.DataBind();
}
protected void gridInfo_ItemCommand(object source, DataGridCommandEventArgs e)
{
if (!Page.IsPostBack)
{
if (e.CommandName == "AlterData")
{
Response.Redirect(".../pages/newpage.aspx");
}
}
}
private void GetThing2()
{
if (userNameType == "Valid")
{
//Run this SQL Procedure
//bind to datagrid
}
else
{
//Run this procedure
//bind to datagrid
}
}
这是用于创建网格本身的HTML / CSS
<asp:DataGrid runat="server" ID="gridInfo" AutoGenerateColumns="false" CssClass="DataGrids"
GridLines="Both" ShowFooter="true" OnItemCommand="gridInfo_ItemCommand" OnItemDataBound="gridInfo_ItemDataBound">
<ItemStyle CssClass="row" />
<FooterStyle CssClass="DataGridFooters" />
<HeaderStyle CssClass="DataGridHeaders" />
<Columns>
<asp:TemplateColumn HeaderText="ID" ItemStyle-CssClass="Blue" ItemStyle-HorizontalAlign="Center"
HeaderStyle-HorizontalAlign="Center" ItemStyle-Width="40" Visible="true">
<ItemTemplate>
<asp:LinkButton ForeColor="White" ID="btnEdit" runat="server" CausesValidation="True"
CssClass="BoldTextWhite" CommandName="Edit" Text='<%# Eval("ID") %>' CommandArgument='<%# Eval("ID") %>'>
</asp:LinkButton>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="ID" HeaderText="ID" Visible="false"> </asp:BoundColumn>
<asp:BoundColumn DataField="first name" HeaderText="First"></asp:BoundColumn>
<asp:BoundColumn DataField="last name" HeaderText="Last"></asp:BoundColumn>
</asp:TemplateColumn>
以下设置方法....
private void Setup()
{
this.lblMessage.Text = "Please click an ID from the grid for further information";
}
当我点击gridinfo中的一个id时会抛出此消息,这应该启动一个单独的页面,不会将任何数据加载到网格中,因此我不确定为什么会显示此错误。
答案 0 :(得分:0)
需要更多信息,当您收到此错误时,您正在做什么。此外,您的Setup()方法没有代码。如果点击页面上的任何控件,如何触发回发事件?