我有一個網格視圖來填充數據從數據庫與最後一列元素超鏈接到不同的頁面或只是一個文本顯示(沒有超鏈接)。我在GridView的GridView1_SelectedIndexChanged()事件中將TransactionId存儲在cookie中的每條記錄。但是這個事件沒有被觸發。GridViews GridView1_SelectedIndexChanged不工作
GridView綁定正確,基於類型的最後一列項在GridView1_RowDataBound()處變成超鏈接。重定向到不同的頁面可以正常工作,但由於SelectedIndexChanged()事件未觸發,因此不會加載cookie,並且重定向的頁面不會顯示數據。
請幫我一把。謝謝。
代碼:
<asp:GridView ID="GridView1" runat="server" CellPadding="4" ForeColor="Black"
GridLines="Vertical" Width="100%" RowStyle-Wrap="true" AllowPaging="True"
PageSize="5" OnPageIndexChanging="gridView_PageIndexChanging"
OnRowDataBound="GridView1_RowDataBound" onselectedindexchanged="GridView1_SelectedIndexChanged"
AutoGenerateColumns="False" selectedindex="1" style="word-wrap:break-word; margin-left: 0px;" >
<Columns>
<asp:BoundField DataField="COL-1" HeaderText="COL1" />
<asp:BoundField DataField="COL-2" HeaderText="COL2" />
<asp:BoundField DataField="COL-3" HeaderText="COL3" />
<asp:BoundField DataField="COL-4" HeaderText="COL4" />
</Columns>
<AlternatingRowStyle BackColor="White" />
<FooterStyle BackColor="#CCCC99" />
<HeaderStyle BackColor="#6B696B" Font-Bold="True" ForeColor="White" />
</asp:GridView>
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
HttpCookie TransId = new HttpCookie("TransId");
GridViewRow row = GridView1.SelectedRow;
TransId.Value = row.Cells[0].Text;
Response.Cookies.Add(TransId);
}
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (e.Row.Cells[3].Text.Equals("Pending"))
{
HyperLink link = new HyperLink();
link.Text = "Pending";
link.NavigateUrl = "NewPage.aspx";
e.Row.Cells[3].Controls.Add(link);
}
}
}
能否請您在重定向之前分享一些示例以回傳。我無法如何進一步進行。謝謝。 – Vasanth
據我所知,GridView不能有AutoPostBack,所以我使用Boundfields。 如果我誤解了你的評論,請糾正我。 – Vasanth
設置AutoGenerateSelectButton =「true」會觸發SelectedIndexChanged()事件,但會添加不是所需輸出的附加列。 我不能動態地將COL-4 BoundField類型動態地轉換爲CommandField。任何建議都會有所幫助。謝謝。 – Vasanth