GridView里面的内嵌的服务器控件如LinkButton如何传值?
2007-01-22 16:26
387 查看
GridView里面的内嵌的服务器控件如LinkButton如何传值到LinkButton 事件中
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="False"
CellPadding="4" DataKeyNames="Code" DataSourceID="ObjectDataSource1" ForeColor="#333333"
GridLines="Vertical" Width="100%" PageSize="6">
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<Columns>
<asp:BoundField DataField="publishType" HeaderText="杂志类型" >
<ItemStyle HorizontalAlign="Center" />
</asp:BoundField>
<asp:BoundField DataField="magCode" HeaderText="杂志编号" />
<asp:BoundField DataField="Name" HeaderText="杂志名称" />
<asp:BoundField DataField="Volumn" HeaderText="刊数" SortExpression="Volumn" />
<asp:BoundField DataField="Code" HeaderText="期刊编号" SortExpression="Code" />
<asp:CheckBoxField DataField="CanPublish" HeaderText="发布" />
<asp:BoundField DataField="Category" HeaderText="所属分类" />
<asp:BoundField DataField="Author" HeaderText="作者" />
<asp:BoundField DataField="Brief" HeaderText="摘要内容" />
<asp:TemplateField ShowHeader="False">
<ItemStyle HorizontalAlign="Center" Width="40px" />
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Doker.WebSite.AppCode.UrlLinks.GetMagazineDetailPreview(Eval("PublishType"),Eval("Code")) %>' Target="_blank">预览</asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ShowHeader="False">
<ItemStyle HorizontalAlign="Center" Width="40px" />
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" CommandName="Generate"
OnClick="LinkButton1_Click" Text="生成" CommandArgument='<%# Eval("Code") %>'></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ShowHeader="False">
<ItemStyle HorizontalAlign="Center" Width="40px" />
<ItemTemplate>
<asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" CommandName="Publish"
OnClick="LinkButton2_Click" Text="发布" CommandArgument='<%# Eval("Code") %>'></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<EditRowStyle BackColor="#999999" />
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Left" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
</asp:GridView>
从代码可以看出LinkButton是通过CommandArgument='<%# Eval("Code") %>属性把字段"Code"传给事件。
在事件中又始何获取CommandArgument的值呢?如下代码:
string _code = ((LinkButton)sender).CommandArgument;
这边有一个小小的技巧是:点击LinkButton那一行的数据存储在GridViewRow中,然后再能过GridViewRow获取字段值,(注意sender就是LinkButton)代码如下:
protected void LinkButton1_Click(object sender, EventArgs e)
{
LinkButton btn = sender as LinkButton;
GridViewRow row = btn.Parent.Parent as GridViewRow;
SeedMaker sm = new SeedMaker();
string publishType = string.Empty;
string magName = string.Empty;
string magBtype = string.Empty;
string magStype = string.Empty;
string magCode = string.Empty;
string magVol = string.Empty;
string volCode = string.Empty;
string magCate = string.Empty;
string content = string.Empty;
string author = string.Empty;
publishType = row.Cells[0].Text;
magCode = row.Cells[1].Text;
magName = row.Cells[2].Text;
magVol = row.Cells[3].Text;
volCode = row.Cells[4].Text;
magCate = row.Cells[6].Text;
author = row.Cells[7].Text;
content = row.Cells[8].Text;
}
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="False"
CellPadding="4" DataKeyNames="Code" DataSourceID="ObjectDataSource1" ForeColor="#333333"
GridLines="Vertical" Width="100%" PageSize="6">
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<Columns>
<asp:BoundField DataField="publishType" HeaderText="杂志类型" >
<ItemStyle HorizontalAlign="Center" />
</asp:BoundField>
<asp:BoundField DataField="magCode" HeaderText="杂志编号" />
<asp:BoundField DataField="Name" HeaderText="杂志名称" />
<asp:BoundField DataField="Volumn" HeaderText="刊数" SortExpression="Volumn" />
<asp:BoundField DataField="Code" HeaderText="期刊编号" SortExpression="Code" />
<asp:CheckBoxField DataField="CanPublish" HeaderText="发布" />
<asp:BoundField DataField="Category" HeaderText="所属分类" />
<asp:BoundField DataField="Author" HeaderText="作者" />
<asp:BoundField DataField="Brief" HeaderText="摘要内容" />
<asp:TemplateField ShowHeader="False">
<ItemStyle HorizontalAlign="Center" Width="40px" />
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Doker.WebSite.AppCode.UrlLinks.GetMagazineDetailPreview(Eval("PublishType"),Eval("Code")) %>' Target="_blank">预览</asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ShowHeader="False">
<ItemStyle HorizontalAlign="Center" Width="40px" />
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" CommandName="Generate"
OnClick="LinkButton1_Click" Text="生成" CommandArgument='<%# Eval("Code") %>'></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ShowHeader="False">
<ItemStyle HorizontalAlign="Center" Width="40px" />
<ItemTemplate>
<asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" CommandName="Publish"
OnClick="LinkButton2_Click" Text="发布" CommandArgument='<%# Eval("Code") %>'></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<EditRowStyle BackColor="#999999" />
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Left" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
</asp:GridView>
从代码可以看出LinkButton是通过CommandArgument='<%# Eval("Code") %>属性把字段"Code"传给事件。
在事件中又始何获取CommandArgument的值呢?如下代码:
string _code = ((LinkButton)sender).CommandArgument;
这边有一个小小的技巧是:点击LinkButton那一行的数据存储在GridViewRow中,然后再能过GridViewRow获取字段值,(注意sender就是LinkButton)代码如下:
protected void LinkButton1_Click(object sender, EventArgs e)
{
LinkButton btn = sender as LinkButton;
GridViewRow row = btn.Parent.Parent as GridViewRow;
SeedMaker sm = new SeedMaker();
string publishType = string.Empty;
string magName = string.Empty;
string magBtype = string.Empty;
string magStype = string.Empty;
string magCode = string.Empty;
string magVol = string.Empty;
string volCode = string.Empty;
string magCate = string.Empty;
string content = string.Empty;
string author = string.Empty;
publishType = row.Cells[0].Text;
magCode = row.Cells[1].Text;
magName = row.Cells[2].Text;
magVol = row.Cells[3].Text;
volCode = row.Cells[4].Text;
magCate = row.Cells[6].Text;
author = row.Cells[7].Text;
content = row.Cells[8].Text;
}
相关文章推荐
- GridView里面的内嵌的服务器控件如LinkButton如何自定义操作?(已经解决)
- ASP.NET2.0中的GRIDVIEW控件在使用TemplateField中的LinkButton时如何在RowCommand事件中找到当前行index的方法
- 牛腩购物4 aspnetpager控件的使用 以及 linkbutton 如何传值,判断传入的id值是否为数字
- ASP.NET2.0中的GRIDVIEW控件在使用TemplateField中的LinkButton时如何在RowCommand事件中找到当前行index的方法
- GridView后台自动添加行、列,行列不固定,并且再列里面添加服务器控件,然后取值
- ASP.NET2.0中的GRIDVIEW控件在使用TemplateField中的LinkButton时如何在RowCommand事件中找到当前行index的方法
- 如何取得服务器控件生成的HTML内容呢
- 发布一个用于和GridView或DataGrid表格相关联的查找搜索服务器控件
- ASP.NET中如何访问用户控件里面的控件的值
- ASP.NET - 如何:在非分层 Web 服务器控件中显示站点地图数据
- ASP.NET - 如何:对照数据类型验证 ASP.NET 服务器控件
- (原創) 如何獲得GridView內LinkButton的RowIndex? (.NET) (ASP.NET)
- 如何简单的用DataSet读取XML 并把它绑定到控件(GridView、DataList)
- 如何清空IE下file文件控件表单里面的值
- Visual Studio 中使用Word、Excel等COM控件时如何配置服务器让程序正常运行?
- 用户控件(.ascx)与网页间(.aspx)如何传值的几种方法
- 如何获得并判断gridview中子控件checkBox是否选中
- vb里面 如何实现 webbrowser控件打开的页面的自动保存呢
- 如何解决GridView在本地和服务器上数据显示的不一致?
- 如何判断GridView控件的某一行是否被选中