学号 姓名 语文 数学 英语 总分
1001 ccc 附表1 附表2 附表3 附表4
这些表格我用的是后台变量画的,
方法如下:
 public string table = "";
table += "<table bgcolor=#33ccff  cellpadding=1 cellspacing=1 style='font-size:9pt; table-layout:fixed; text-justify:kashida; text-align:center;'>";
然后对对应的表格绑定数据如:
 table += "<tr bgcolor=white style='margin:10;height: 20px;'>" +
            "<td style='width: 80px'>" + ds1.Tables[0].Rows[0].ItemArray[0].ToString() + "</td><tr>" ;
最后在前台引用该变量
引用方法为:<%=table%>
我现在要在相应的地方添加按钮,位置为,附表1,附表2,附表3,附表4,点击该按钮,找到该行的学号,传给相应的页面,有人也许会说,直接用gridview不就行啦,我也想过,前面的列也是不固定的,后面的有按钮的这些列也是不固定的,因为各年级的学习科目是不固定的,所以查出来的列不是动态的,我在gridview中我没有找到相应的方法,所以只能用上面的方法,但是在添加服务器控件时不行的!输出到前台不能用!
我是这样用的!
"<td style='width: 120px'><asp:LinkButton ID='LinkButton4'runat='server'>LinkButton</asp:LinkButton></td>";
但是没有用,怎么才能添加按钮,能够触发相应的事件!
能给我个解决方案,或详细方法!gridview,或则上面的后台变量的方法两者都行

解决方案 »

  1.   

     
    int i=1;
    LinkButton  fu = new LinkButton();
            fu.ID = "LinkButton" + i;
            this.Panel1.Controls.Add(fu);
      

  2.   

     
    int i=1;
    LinkButton  fu = new LinkButton();
            fu.ID = "LinkButton" + i;
            this.Form1.Controls.Add(fu);
      

  3.   

    比如说,怎么加到
    " <td style='width: 120px'></td>"; 
    其他事件怎么定义??
      

  4.   

    你的操作, 我看的不是很懂,但要求还是知道,动态生成控件.我这有个例子,希望给你点提示namespace es 

        public partial class 动态控件 : System.Web.UI.Page 
        { 
            string s = "1,2,3,4,5,6,7,";//从数据库取出的数据 
            protected void Page_Load(object sender, EventArgs e) 
            { 
                LoadData(); 
            }         private void LoadData() 
            { 
              
                var ss = s.Replace(",", " ").Trim().Replace(" ", ",").Split (new char[1]{','}); 
                for(int i=0;i <ss.Length ;i++) 
                { 
                    TableRow tr = new TableRow(); 
                    TableCell tc1 = new TableCell(); 
                    TableCell tc2 = new TableCell(); 
                    TextBox tb = new TextBox();                 tb.ID = ss[i].ToString() ; 
                    tc2.Controls.Add(tb); 
                    tr.Cells.Add(tc1); 
                    tr.Cells.Add(tc2); 
                    Table1.Rows.Add(tr); 
                } 
            }         protected void Button1_Click(object sender, EventArgs e) 
            { 
                string sqluser2t = ""; 
                string[] scv = s.Replace(",", " ").Trim().Replace(" ", ",").Split(new char[1] { ',' }); 
                for (int x = 0; x < scv.Length; x++) 
                { 
                    TextBox chk = (TextBox)Table1.FindControl(scv[x].ToString()); 
                    if (!string.IsNullOrEmpty(chk.Text)) 
                    { 
                        sqluser2t += chk.Text + " ";//从控件中得到输入的数据 
                    } 
                } 
                Response.Write(sqluser2t); 
            } 
        } 

    前台; 
    <body> 
        <form id="form1" runat="server"> 
        <div> 
            <asp:Table ID="Table1" runat="server"> 
            </asp:Table> 
            <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" /> 
        </div> 
        </form> 
    </body> 
    我用这个动态创建控件的功能,做了一个自定义字段的功能.我写的这个比较基础,有需要我可以把我写的完整功能 发你
      

  5.   

                string id = Request.QueryString["id"];
                //string nian = "2009";
                //string yue = "04";
                string ztid = Request.QueryString["ztid"];
                DataTable dt = new DataTable();            gongziSystem gongzisystem = new gongziSystem();//这个是用来生成datatable的            dt = gongzisystem.fhtablegr(id, ztid);//这个是用来生成datatable的
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    for (int j = 1; j < dt.Columns.Count; j++)
                    {
                        Label lb = new Label();
                        lb.ID = "Label" + i.ToString();
                        TextBox tb = new TextBox();
                        tb.ID = "TextBox" + i.ToString();
                        lb.Text = dt.Columns[j].ColumnName;
                        tb.Text = dt.Rows[i][j].ToString();
                        Literal newColumn = new Literal();
                        //Response.Write("<table   width= '800px '   border= '0 '   cellspacing= '0 '   cellpadding= '0 ' background='images/bg10.gif'> ");
                       newColumn.Text = " <table   width= '800px '   border= '0 '   cellspacing= '0 '   cellpadding= '0 ' background='images/bg10.gif'> ";
                        //this.Panel1.Controls.Add(new LiteralControl("<table>"));
                        this.Panel1.Controls.Add(new LiteralControl("<tr>"));
                       Literal newColumn2 = new Literal();
                        newColumn2.Text = " <td   width= '400px ' align='right'>";  
                        this.Panel1.Controls.Add(new LiteralControl("<td>"));
                        this.Panel1.Controls.Add(lb);
                        this.Panel1.Controls.Add(new LiteralControl(":"));
                        this.Panel1.Controls.Add(new LiteralControl("</td>"));
                        this.Panel1.Controls.Add(new LiteralControl("<td>"));
                        Literal newColumn3 = new Literal();
                        newColumn3.Text = " <td   width= '400px ' align='right'>";  
                        this.Panel1.Controls.Add(tb);
                        //this.Panel1.Controls.Add(new LiteralControl("<br/>"));
                        this.Panel1.Controls.Add(new LiteralControl("</td>"));
                        this.Panel1.Controls.Add(new LiteralControl("</tr>"));
                        this.Panel1.Controls.Add(new LiteralControl("</table>"));
                    }            }
    我这段代码可以根据datatalbe中的数据自动的生成lable 和文本框,希望对你有帮助!!
      

  6.   

    " <td style='width: 120px'> <asp:LinkButton ID='LinkButton4'runat='server'>LinkButton </asp:LinkButton> </td>"; 
    换成HTML控件,用JS事件实现,如果需要跟服务器回调,可以添加客户回调的功能
      

  7.   

    前台<asp:Button ID='Button1' runat='server' style="display:none;" OnClick="Button1_Click"></asp:Button>
    <input type="button" onclick="document.getElementById('Button1').click();">后台代码protected void Button1_Click(object sender,EventArgs e){
      Response.write("Button !!!!");
    }
    我建议你用Repeater绑定,动态列什么都可以实现。
      

  8.   

    string.Format("<td><input id=\"btn\" type=\"button\" value=\"按钮\" onclick=\"javascript:window.location.href='{0}'\" /></td>", url)
    url  :为地址
      

  9.   

    绑定,服务器控件方法得写在onload事件中
      

  10.   

    <asp:LinkButton ID='LinkButton4'runat='server'>LinkButton </asp:LinkButton> 
    换成
    function AddNewDiv()
    {
        var parentDiv=document.getElementById('parentDiv');
        var childDiv=document.createElement("div");
        var i=parentDiv.children.length;
        var j=parentDiv.children.length+1;
        childDiv.id="div"+i;
        childDiv.innerHTML="<table class='tableFrame1' width='100%' style='text-align:center;'>"+
               "<tr><td style='width:5%;'><input id='btnDel' type='button' value='删除' onclick='DeleteDiv(\"div"+i+"\")' style='width:98%;' /></td>"+</tr></table>";
        parentDiv.appendChild(childDiv);
    }
    //删除div
    function DeleteDiv(divId)
    {
        var div=document.getElementById(divId);
        div.parentNode.removeChild(div);
    }<div id="parentDiv" style="width:100%;">
      

  11.   

    我试了,好像和我原来的代码块<%=table%>冲突,提示控件包涵代码块即(%%)
      

  12.   

    没看明白你什么意思,但我觉得GridView是可以搞定的,你生成的列是不是动态的,因此不能确定,是这个意思吗。给你个例子你看一下,对你有没有帮助。<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="编号"
                DataSourceID="AccessDataSource1" OnRowDataBound="GridView1_RowDataBound">
                <Columns>
                    <asp:TemplateField HeaderText="查看">
                        <ItemTemplate>
                            <asp:Button ID="Button1" runat="server" CommandArgument='<%#Bind("id")%>' OnClick="Button1_Click"
                                Text="查看" />
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:BoundField DataField="id" HeaderText="id" SortExpression="id" />
                    <asp:BoundField DataField="title" HeaderText="title" SortExpression="title" />
                    <asp:BoundField DataField="name" HeaderText="name" SortExpression="name" />
                    <asp:BoundField DataField="publishtime" HeaderText="publishtime" SortExpression="publishtime" />
                </Columns>
            </asp:GridView>后台Button的方法:protected void Button1_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            string id = btn.CommandArgument;
            //do something
        }
    你在Button1里绑定你想要的字段,到后台取就是了,不知道是不是你想要的结果,因为没太看明白你的意思。
      

  13.   

    每添加一行时添加一个不显示的radiobutton.给它的值设成这行的ID.每当单击按钮时设置对应行的radiobutton的Value回发时接这个值