我在前台用了一个GRIDVIEW其中有个linkbutton模板列,点击该列中某一项即弹出窗口,并把此项的值传给该弹出窗口。可实验时发现每次都必须要点击到第二次才会弹出窗口,点击第一次时没反应,请问大家有人知道什么原因么?
附带部分代码:
前台:
<asp:GridView id="FGridView" runat="server" CssClass="Note" Width="100%" HeaderStyle-BackColor="AliceBlue" BorderColor="Thistle" BorderStyle="Ridge" AutoGenerateColumns="False" OnRowCommand="FGridView_RowCommand" OnRowCreated="FGridView_RowCreated" DataKeyNames="jgms">
<Columns>
<asp:TemplateField HeaderText="体征描述">
<ItemTemplate>
<asp:LinkButton ID="miaoshu" CommandName="ms" runat="server" Text='<%#Eval("JGMS") %>' ></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>后台:
protected void FGridView_RowCommand(object sender, GridViewCommandEventArgs e)
{ String miaoshu = "";
e.CommandName.ToString();
LinkButton bb = new LinkButton();
if (e.CommandName == "ms")
{
int index = Convert.ToInt32(e.CommandArgument);
GridViewRow row = FGridView.Rows[index];
bb = (LinkButton)row.Cells[1].FindControl("miaoshu");
miaoshu = bb.Text;
FGridView.Rows[index].Cells[1].Attributes.Add("OnClick", "javascript:window.open('cbzd.aspx?jg="+miaoshu+"','','width=400,height=300,toolbar=no,menubar=no,resizable=yes, top=200,left=1000');");
}
}
附带部分代码:
前台:
<asp:GridView id="FGridView" runat="server" CssClass="Note" Width="100%" HeaderStyle-BackColor="AliceBlue" BorderColor="Thistle" BorderStyle="Ridge" AutoGenerateColumns="False" OnRowCommand="FGridView_RowCommand" OnRowCreated="FGridView_RowCreated" DataKeyNames="jgms">
<Columns>
<asp:TemplateField HeaderText="体征描述">
<ItemTemplate>
<asp:LinkButton ID="miaoshu" CommandName="ms" runat="server" Text='<%#Eval("JGMS") %>' ></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>后台:
protected void FGridView_RowCommand(object sender, GridViewCommandEventArgs e)
{ String miaoshu = "";
e.CommandName.ToString();
LinkButton bb = new LinkButton();
if (e.CommandName == "ms")
{
int index = Convert.ToInt32(e.CommandArgument);
GridViewRow row = FGridView.Rows[index];
bb = (LinkButton)row.Cells[1].FindControl("miaoshu");
miaoshu = bb.Text;
FGridView.Rows[index].Cells[1].Attributes.Add("OnClick", "javascript:window.open('cbzd.aspx?jg="+miaoshu+"','','width=400,height=300,toolbar=no,menubar=no,resizable=yes, top=200,left=1000');");
}
}
解决方案 »
- 泛型 List<CategoryInfo> 怎么回事?
- html 页面iframe aspx页面的问题
- Visual Studio 2005 程序员的工作!!!
- 各位大虾,关于控件不能显示的问题
- 在线等.......动态生成多个同类型控件,且其事件调用同一方法,如何获取控件ID或TEXT?
- 怎样获得DATAGRID 模板列DATAGRID中的操作行的数据
- 关闭子窗体 父窗体变量得到值??
- 高手进。讨论MS SQL高效,易用的分页方法。
- 用C#写ASP.NET程序我怎么找不到Page_Unload事件?
- 谁有共享版《我爱背单词》的注册码或注册机,请发过来可以吗?大家一般在哪里找注册码或注册机?
- 网站与论坛整合
- 用JavaScript怎么动态添加控件???
}
这个绑定不应该放在RowCommand中,而是应该放在RowCreate或Rowdatabound中
string strDialogSettings = "Center:yes;Resizable:yes;DialogHeight:800px;DialogWidth:720px;Status:no;scrollbars:no";
((LinkButton)(e.Item.Cells[4].Controls[0])).Attributes.Add("onclick", "ShowDialog('CompanyFile.aspx?CommodityID=" + this.DataGrid1.DataKeys[e.Item.ItemIndex].ToString() + "','" + strDialogSettings + "');location.reload(true);");//
protected void FGridView_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
LinkButton bb = (LinkButton)e.Row.FindControl("miaoshu");
e.Row.Cells[1].Attributes.Add("onclick", "javascript:window.open('cbzd.aspx?jg=" + bb.Text + "','','width=400,height=300,toolbar=no,menubar=no,resizable=yes, top=200,left=1000');");
}
}