Какой лучший способ вызвать переменную templatefield в коде за страницей? - PullRequest
0 голосов
/ 31 августа 2011

Я образно тяну свои волосы на этом ...

У меня есть сетка с полем шаблона, содержащим метку, текст которой я хочу вставить в подпрограмму на странице кодирования кода, которая запускается из события onclick. (Ну, в любом случае, это самое простое объяснение).

Как вызвать поле «Метка» в коде за страницей, чтобы я мог применить его к переменной в моей подпрограмме?

Вот код в моем поле шаблона, который также включает код для экземпляра 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 = ""

Это выдает ошибку, как описано в комментариях ниже. Я знаю, что остальная часть подпрограммы в порядке, потому что, если я использую "" для переменной, она работает. Но, очевидно, я хочу, чтобы переменная была заполнена.

1 Ответ

1 голос
/ 31 августа 2011

Я думаю, что было бы проще добавить столбец в качестве ключа данных и ссылаться на него таким образом. Но вы должны иметь возможность получить ярлык следующим образом:

РЕДАКТИРОВАТЬ : изменено на прямое приведение

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