使用ButtonField發出行命令時遇到問題。GridView的ButtonField點擊是否會導致回發?
當我點擊ButtonField字段的ImageButton的,是的IsPostBack假
我的理解是,在ButtonField字段在GridView的的ImageButton應該回發是真實的。
問題:是否有人可以解釋我是否對還是錯,如果有性能上的按鈕字段設置爲得到它發出一個回發。
一些代碼:
Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
m_DataTable = GetDataTable();
Session["m_DataTable"] = m_DataTable;
}
else
{
m_DataTable = Session["m_DataTable"];
}
}
,並在後面的代碼:
GridView1.Columns.Clear();
ButtonField cf = new ButtonField();
cf.HeaderStyle.CssClass = "comGridHeadCell";
cf.HeaderText = "some text";
cf.HeaderImageUrl = "images/something.png";
cf.Text = "action";
cf.CommandName = "action";
cf.ImageUrl = "images/something.png";
cf.ButtonType = ButtonType.Image;
cf.ItemStyle.CssClass = "comGridLink";
GridView1.Columns.Add(cf);
GridView1.DataSource = m_DataTable;
GridView1.DataBind();
也:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" AllowPaging="True" AllowSorting="True" OnRowCommand="GridView_RowCommand" OnPageIndexChanging="GridView_PageIndexChanging">
<PagerSettings PageButtonCount="25" />
</asp:GridView>
編輯: 我通過VS2010在調試模式下運行網站。我正在測試使用IE8。 如果我使用firefox,IsPostBack == true
。這在IE8中調試時看起來像一個特定的問題。
看到有問題的GridView的標記會很有用,而且如果您將刪除沒有做任何事情的代碼。 – pseudocoder
@pseudocoder ButtonField僅在代碼中定義。我會添加GridView標記 – ghostJago
也FYI我相信你的第一個代碼塊中有一個錯字......不應該是'Session [「m_DataTable」] = m_DataTable;'? – pseudocoder