我有一个gridview,它有一个我想要的列动态显示它: 如果IsExpert或IsAgent等于true则显示它不显示它我不想使用RowBoundData。(IsExpert和IsAgent是服务器端属性)
mycode的:
<asp:GridView ID="grvTicketList" runat="server" AllowPaging="True" AutoGenerateColumns="False" CssClass="table half table-hover table-mc-light-blue" GridLines="None"
EmptyDataText="تیکتی موجود نیست" OnPageIndexChanging="grvTicketList_PageIndexChanging" PagerStyle-BackColor="White"
PagerStyle-ForeColor="Black" OnRowCommand="grvTicketList_RowCommand" >
<Columns>
<asp:BoundField DataField="TicketID" ReadOnly="true" HeaderText="شماره تیکت" />
<asp:BoundField DataField="CurrentStateId" ReadOnly="true" HeaderText="شماره مرحله فعلی تیکت" />
<asp:BoundField DataField="TrackingCode" ReadOnly="true" HeaderText="کد رهگیری" />
<asp:BoundField DataField="ServiceName" ReadOnly="true" HeaderText="نام خدمت" />
<asp:BoundField DataField="SubServiceName" ReadOnly="true" HeaderText=" نام زیر خدمت" />
<asp:BoundField DataField="strTicketDate" HeaderText="زمان ثبت تیکت" />
<asp:BoundField DataField="CustomerName" HeaderText=" نام و نام خانوادگی مشتری" />
<asp:BoundField DataField="StateName" HeaderText="وضعیت تیکت" />
<asp:BoundField DataField="UserName" HeaderText="نام ثبت کننده تیکت" />
<asp:ButtonField Text="بازخورد" CommandName="FeedBack" ButtonType="Link" >
<ItemStyle ForeColor="#003399" />
</asp:ButtonField>
</Columns>
<PagerStyle BackColor="White" ForeColor="Black"></PagerStyle>
答案 0 :(得分:1)
在页面加载
if(IsExpert || IsAgent)
GridView1.Columns[9].Visible=true;
else
GridView1.Columns[9].Visible=false;
答案 1 :(得分:0)
而不是使用aspx我更喜欢代码隐藏,例如Page_Load
或DataBound
。请注意,DataBound
仅触发一次,而不是针对每一行触发的RowDataBound
:
代码隐藏:
protected void GrvTicketList_DataBound(Object sender, EventArgs e)
{
GridView grid = (GridView)sender;
grid.Columns[9].Visible = IsExpert || IsAgent;
}
aspx(添加事件处理程序):
<asp:GridView ID="grvTicketList" OnDataBound="GrvTicketList_DataBound" runat="server" AllowPaging="True" AutoGenerateColumns="False" CssClass="table half table-hover table-mc-light-blue" GridLines="None"
EmptyDataText="تیکتی موجود نیست" OnPageIndexChanging="grvTicketList_PageIndexChanging" PagerStyle-BackColor="White"
PagerStyle-ForeColor="Black" OnRowCommand="grvTicketList_RowCommand" >
<Columns>
<asp:BoundField DataField="TicketID" ReadOnly="true" HeaderText="شماره تیکت" />
<asp:BoundField DataField="CurrentStateId" ReadOnly="true" HeaderText="شماره مرحله فعلی تیکت" />
<asp:BoundField DataField="TrackingCode" ReadOnly="true" HeaderText="کد رهگیری" />
<asp:BoundField DataField="ServiceName" ReadOnly="true" HeaderText="نام خدمت" />
<asp:BoundField DataField="SubServiceName" ReadOnly="true" HeaderText=" نام زیر خدمت" />
<asp:BoundField DataField="strTicketDate" HeaderText="زمان ثبت تیکت" />
<asp:BoundField DataField="CustomerName" HeaderText=" نام و نام خانوادگی مشتری" />
<asp:BoundField DataField="StateName" HeaderText="وضعیت تیکت" />
<asp:BoundField DataField="UserName" HeaderText="نام ثبت کننده تیکت" />
<asp:ButtonField Text="بازخورد" CommandName="FeedBack" ButtonType="Link" >
<ItemStyle ForeColor="#003399" />
</asp:ButtonField>
</Columns>