在页面后面的代码中调用templatefield变量的最佳方法是什么?

时间:2011-08-31 18:32:33

标签: asp.net variables onclick addthis

我象征性地把头发拉出来......

我有一个gridview,其中包含一个Label,其中我想将文本拉入代码behing页面的子程序,该子程序从onclick事件触发。 (无论如何,这是最简单的解释)。

如何在代码隐藏页面上调用Label字段,以便将其应用于子例程中的变量?

这是我的templatefield中的代码,其中还包含AddThis实例的代码,这是触发onclick事件的原因。

<asp:TemplateField HeaderText="Share Tune" Visible="True">
        <ItemTemplate>
        <!-- AddThis Button BEGIN -->
<div class="addthis_toolbox addthis_default_style " addthis:url='<%# DataBinder.Eval(Container, "DataItem.Link_Code") %>' addthis:title='"<%# DataBinder.Eval(Container, "DataItem.Link_Title") %>" by <%=aname%>'>
<a class="addthis_button_facebook"></a>
<a class="addthis_button_twitter"></a>
<a class="addthis_button_google_plusone" <%= UpDate_GPlus1_Code() %>></a>
<a class="addthis_button_email"></a>
<a class="addthis_button_compact"></a>
<a class="addthis_counter addthis_bubble_style"></a>
<asp:Label id="share_buts" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Key") %>' Visible="False" />
</div>
<script type="text/javascript" src="http://s7.addthis.com/js/250/addthis_widget.js#pubid=ra-4e5d090e454e4ddf"></script>
<!-- AddThis Button END -->
        </ItemTemplate>
    </asp:TemplateField>

onclick子程序如下所示: -

 Protected Sub addthis_but_Click(lnkid As String, shmtd As String)

    Dim db As String
    Dim shdate As DateTime
    Dim uid As String

    shdate = DateAndTime.Now.ToString
    uid = Membership.GetUser.UserName
    Label lbl = GridView1.Rows[0].FindControl("share_buts") as Label;
    shmtd = ""

这会引发错误,如下面的评论中所述。我知道sub的其余部分很好,因为如果我使用“”作为变量它可以工作。显然我想要填充变量。

1 个答案:

答案 0 :(得分:1)

我认为将列添加为数据键并以这种方式引用会更容易。但你应该能够像这样获得标签:

编辑:更改为直播

Label lbl = (Label)GridView1.Rows[0].FindControl("share_buts");