Posted on 2007-09-01 09:50 张荣华 阅读(938) 评论(0)  编辑  

1.GridView中使用超链接的技巧
  GridView中的超级链接,可以设置一个模版列,放入超级链接的控件,设置绑定参数即可。
数据绑定方式有两种,如下示例:
◆Eval方式     <%# Eval("id") %>
◆Bind方式    <%# Bind("id","~/info.aspx?id={0}") %>
推荐使用第一种方式,可以在一个<%# %>里放入多个绑定,而第二种只能如此绑定一个值
<%# Eval("id") + ":" + Eval("name")%>

做超级链接的控件,我们也有多种选择:
◆asp:LinkButton
示例
<asp:LinkButton ID="LinkButton2" OnClientClick=<%# "window.open('info.aspx?) %></a>

LinkButton 不好设置,推荐使用HyperLink或者a的方式,简单实用。特别是a标签,使用Javascript的方法也比较方便。
 补充:
<asp:LinkButton ID="LinkButton3" runat="server" PostBackUrl='<%# "~/Default.aspx?></asp:LinkButton>

2.gridview模板列加htmlinputcheckbox的取值
①aspx文件:
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="False"
            DataKeyNames="OrderID,ProductID" DataSourceID="SqlDataSource1" EmptyDataText="111">
            <Columns>
                <asp:BoundField DataField="OrderID" HeaderText="OrderID" ReadOnly="True" SortExpression="OrderID" />
                <asp:BoundField DataField="ProductID" HeaderText="ProductID" ReadOnly="True" SortExpression="ProductID" />
                <asp:BoundField DataField="UnitPrice" HeaderText="UnitPrice" SortExpression="UnitPrice" DataFormatString="{0:C}" />
                <asp:BoundField DataField="Quantity" HeaderText="Quantity" SortExpression="Quantity" />
                <asp:BoundField DataField="Discount" HeaderText="Discount" SortExpression="Discount" />
                <asp:ImageField DataImageUrlField="OrderID" DataImageUrlFormatString="/{0}.gif" HeaderText="pic">
                </asp:ImageField>
                <asp:TemplateField FooterText="id">
                    <ItemTemplate>
                        &nbsp;<input +cb.Value;
    }
  }
}
Label1.Text=str1;

3.gridview模板列绑定gridview
①aspx文件:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="ProductID"
            DataSourceID="SqlDataSource1">
            <Columns>
                <asp:BoundField DataField="ProductID" HeaderText="ProductID" InsertVisible="False"
                    ReadOnly="True" SortExpression="ProductID" />
                <asp:BoundField DataField="ProductName" HeaderText="ProductName" SortExpression="ProductName" />
                <asp:TemplateField HeaderText="detail">
                    <ItemTemplate>
                        &nbsp;&nbsp;&nbsp;
                        <asp:GridView ID="GridView2" runat="server">
                        </asp:GridView>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>
②cs文件:
protected void GridView1_RowDataBound(object sender,System.Web.UI.WebControls.GridViewRowEventArgs e)
{
  if(e.Row.RowType==DataControlRowType.DataRow)
  {
    SqlDataSource2.SelectParameters.Clear();
    SqlDataSource2.SelectParameters.Add("id",e.Row.Cells(0).Text);
    GridView gv;
    gv=e.Row.Cells(2).FindControl("GridView2");
    gv.DataSource=this.SqlDataSource2;
    gv.DataBind();
  }
}

4.GridView更新和删除显示提示信息
①aspx文件:
<asp:GridView ID="GridView1" runat="server"
            DataSourceID="SqlDataSource1" AutoGenerateColumns="False" DataKeyNames="au_id" OnRowCommand="GridView1_RowCommand" OnRowUpdating="GridView1_RowUpdating" OnRowDeleting="GridView1_RowDeleting">
            <Columns>
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:LinkButton ID="Edit" runat="server" CommandName="Edit">编辑</asp:LinkButton>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField Visible="False">
                    <ItemTemplate>
                        <asp:LinkButton ID="Update" runat="server" CommandName="Update" OnClientClick="return confirm('确定要更新?');">更新</asp:LinkButton>&nbsp;&nbsp;
                        <asp:LinkButton ID="Delete" runat="server" CommandName="Delete" OnClientClick="return confirm('确定要删除');">删除</asp:LinkButton>&nbsp;&nbsp;
                        <asp:LinkButton ID="Cancel" runat="server" CommandName="Cancel">取消</asp:LinkButton>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:templatefield headertext="Last Name">
                    <itemtemplate>
                        <%#Eval("au_lname") %>
                    </itemtemplate>
                    <edititemtemplate>
                        <asp:textbox :
                GridView1.Columns[0].Visible = true;
                GridView1.Columns[1].Visible = false;
                break;
            default:
                // Do nothing.
                break;
        }
    }

    void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
        int index = GridView1.EditIndex;
        GridViewRow row = GridView1.Rows[index];

        TextBox firstNameTextBox = (TextBox)row.Cells[1].FindControl("FirstNameTextBox");

        String firstName = "";
        if (firstNameTextBox != null)
        {
            firstName = firstNameTextBox.Text;
        }

        TextBox lastNameTextBox = (TextBox)row.Cells[2].FindControl("LastNameTextBox");

        String lastName = "";
        if (lastNameTextBox != null)
        {
            lastName = lastNameTextBox.Text;
        }

        Parameter lastNameParameter = new Parameter("au_lname", TypeCode.String, lastName);
        Parameter firstNameParameter = new Parameter("au_fname", TypeCode.String, firstName);

        SqlDataSource1.UpdateParameters.Clear();
        SqlDataSource1.UpdateParameters.Add(lastNameParameter);
        SqlDataSource1.UpdateParameters.Add(firstNameParameter);
    }

    void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        SqlDataSource1.DeleteParameters.Clear();
    }

相关文章:

  • 2021-07-03
  • 2021-11-01
  • 2021-08-29
  • 2021-09-03
  • 2021-12-26
  • 2022-01-05
  • 2021-09-20
  • 2021-08-31
猜你喜欢
  • 2022-03-03
  • 2022-12-23
  • 2021-06-11
  • 2021-07-21
  • 2021-12-27
相关资源
相似解决方案