2013-03-07 5 views
1

У меня есть большая база данных и множество имен «давайте говорить», и у меня есть определения для этих имен в другой таблице, поэтому я добавляю ссылка для HTML между всеми именами, как это:Получите идентификатор щелкнутой ссылки Html и используйте его как параметр для SqlDataSource в C#

<a href="Test.aspx" target="_blank" id="2384">John</a> 
<a href="Test.aspx" target="_blank" id="2334">Smith</a> 

и многие из этих имен, когда нажата ссылка новая вкладка откроется так, в Test.aspx я GridVew ограничена с SqlDataSource, какие Я хочу взять идентификатор из ссылки, которые были щелкнул передать его в параметр SqlDataSource, как это:

SqlDataSourceTest.SelectParameters["IdFromAnchor"].DefaultValue = theClickedLinkID 

Итак, как я могу передать идентификатор параметру o, что я должен использовать, спасибо.

ответ

4

Лучше всего просто поместить идентификаторы в качестве параметра строки запроса и затем прочитать этот параметр на следующей странице. Убедитесь, что вы дезинфицировать его, хотя, как вы могли бы быть открыты для инъекций SQL:

<a href="Test.aspx?id=2384" target="_blank" id="2384">John</a> 
<a href="Test.aspx?id=2334" target="_blank" id="2334">Smith</a> 

Тогда просто сделать:

Request.QueryString["id"]; 

Остерегайтесь, однако, что могут быть легко изменены пользователем в любой ид им заблагорассудится , поэтому, если вы не хотите, чтобы пользователи видели вещи с идентификаторами, отличными от того, что они видят, вам придется выполнять дополнительные проверки.

+0

+1 Для упоминания SQL-инъекции, однако, используя этот метод, не мог ли кто-то, предположительно, получить информацию о ком-либо в базе данных, просто изменив идентификатор в строке запроса? В зависимости от контекста, это может быть очень плохой идеей. – DGibbs

+0

@DGibbs Да, конечно, хороший крик, я включил этот отказ в свой ответ. Надеемся, что контекст не так открыт, как мы думаем: P – mattytommo

+0

Если есть вещи, которые разрешено видеть только определенным пользователям, вы всегда должны проверить, находится ли то, что они просматривают, в пределах того, что они должны видеть, независимо от того, как вы решаете id stuff :) – Svish

Смежные вопросы