【发布时间】:2011-08-11 13:21:03
【问题描述】:
我有一个使用下拉框过滤的网格视图。 gridview 具有调用 ModalPopUpExtender 来显示数据的 LinkButtons。一旦 gridview 被过滤并单击 LinkButton,GridView 过滤结果就会发生变化并且数据不正确。
<asp:DropDownList ID="ddl_temp" runat="server" AutoPostBack="True"
onselectedindexchanged="ddl_temp_SelectedIndexChanged">
<asp:ListItem>Select Status</asp:ListItem>
<asp:ListItem>Open</asp:ListItem>
<asp:ListItem>Closed</asp:ListItem>
</asp:DropDownList>
protected void tabs()
{
....
sds.FilterParameters.Clear();
sds.SelectParameters.Clear();
ControlParameter cp = new ControlParameter();
cp.ControlID = ddl_temp.ID.ToString();
cp.PropertyName = "SelectedValue";
cp.Name = "Status";
cp.Type = TypeCode.String;
cp.ConvertEmptyStringToNull = false;
sds.FilterParameters.Add(cp);
sds.ID = "sds1";
sds.SelectParameters.Add("sid", sid);
IssuesPanel.Controls.Add(sds);
BoundField date = new BoundField();
date.HeaderText = "Date";
date.DataField = dt.Columns[2].ToString();
date.SortExpression = dt.Columns[2].ToString();
BoundColumn bc = new BoundColumn();
bc.DataField = dt.Columns[2].ToString();
BoundField status = new BoundField();
status.HeaderText = "Status";
status.DataField = dt.Columns[3].ToString();
gv4 = new GridView();
gv4.DataSource = sds;
gv4.RowDataBound += gv4_RowCommand;
gv4.Columns.Add(date);
gv4.Columns.Add(status);
gv4.CellPadding = 6;
gv4.AutoGenerateColumns = false;
//gv4.AllowSorting = true;
gv4.AllowPaging = true;
gv4.DataBind();
IssuesPanel.Controls.Add(gv4);
...
}
protected void gv4_RowCommand(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
LinkButton lb = new LinkButton();
lb.Text = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "Title"));
lb.ID = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "Issue_ID"));
lb.Click += new EventHandler(issueModal);
e.Row.Cells[0].Controls.Add(lb);
}
}
protected void ddl_temp_SelectedIndexChanged(object sender, EventArgs e)
{
sds.FilterParameters.Clear();
ControlParameter cp = new ControlParameter();
cp.ControlID = ddl_temp.ID.ToString();
cp.PropertyName = "SelectedValue";
cp.Name = "Status";
cp.Type = TypeCode.String;
cp.ConvertEmptyStringToNull = false;
sds.FilterParameters.Add(cp);
sds.FilterExpression = "Status='{0}'";
gv4.DataSource = sds;
gv4.DataBind();
}
【问题讨论】:
-
这是 winforms 还是 asp.net webforms?你需要更具体
-
请标记您的问题,以便更具体
标签: c# asp.net gridview modalpopupextender event-handling