积极答复者
gridview中的button

问题
-
我在一个gridview中增加了一列,button,定义为“销假”操作,数据库表中有一个字段是用来标记“是否未销假”,0为未销假,1为已销假。可是在分页的时候,翻到第二页,button的状态和第一页的一样,并没有把是否已销假的状态更新,请问这个该怎么解决?
下面是girdview绑定数据和分页的代码
protected void personalleaveallDataBind() { PersonalLeaveNewLogic personalLeaveNewLogic = new PersonalLeaveNewLogic(); DataSet personalLeaveAllDs = new DataSet(); personalLeaveAllDs = personalLeaveNewLogic.GetPersonalLeaveNewAll(); personalleaveall.DataSource = personalLeaveAllDs; personalleaveall.DataBind(); DataTable dt = personalLeaveAllDs.Tables[0]; int rows = personalleaveall.Rows.Count; for (int i = 0; i < rows; i++) { if (Convert.ToInt16(dt.Rows[i]["flag"]) == 1) { ((Button)this.personalleaveall.Rows[i].Cells[5].FindControl("Done")).Enabled = false; ((Button)this.personalleaveall.Rows[i].Cells[6].FindControl("lbtnDelete")).Enabled = false; this.hideModalPopupViaServer.Enabled = false; } } this.Panel1Timer.Enabled = false; } protected void personalleaveall_PageIndexChanging(object sender, GridViewPageEventArgs e) { personalleaveall.PageIndex = e.NewPageIndex; personalleaveallDataBind(); }
答案
-
你好,
你可以直接在绑定的时候设置其状态啊。如果为1,则让其enabled=false;
<asp:GridView ID="GridView1" runat="server"> <Columns> <asp:TemplateField HeaderText="是否销假"> <ItemTemplate> <asp:Button ID="Button1" runat="server" Text="销假" Enabled='<%# Convert.ToInt32(Eval("销假"))==0?true:false%>'/> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView>
至于绑定的时候你只要给这个gridview设置数据源然后绑定就行了,不用再去改变这个button的enable属性了。
Microsoft Online Community Support- 已标记为答案 KeFang Chen 2010年5月19日 2:32
全部回复
-
你好,
你可以直接在绑定的时候设置其状态啊。如果为1,则让其enabled=false;
<asp:GridView ID="GridView1" runat="server"> <Columns> <asp:TemplateField HeaderText="是否销假"> <ItemTemplate> <asp:Button ID="Button1" runat="server" Text="销假" Enabled='<%# Convert.ToInt32(Eval("销假"))==0?true:false%>'/> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView>
至于绑定的时候你只要给这个gridview设置数据源然后绑定就行了,不用再去改变这个button的enable属性了。
Microsoft Online Community Support- 已标记为答案 KeFang Chen 2010年5月19日 2:32